Chuyển đến nội dung
Diễn đàn CADViet
Jin Yong

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

Các bài được khuyến nghị

OK. Tưởng có giải pháp cho cái thư viện nhưng kiểu này hông ổn. Mình đổi màu nền thành -2 thì có ô đen, ô trắng, ô lôm môm dòm thiệt ngứa con mắt. Và file cad 2016 hông hiện được. Lại chung thuỷ với sld thôi.

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
7 phút trước, Doan Van Ha đã nói:

Nó là lệnh (comamnd), không phải biến.

OSNAP

Vậy không có cách này tắt được bằng lisp hả bạn ơi ?

Mình cần tắt bắt điểm mà ko tác động vào osmode ý

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
14 phút trước, Doan Nguyen Van đã nói:

Bác có thể sử dụng lisp mà, lưu 1 biến thành biến hệ thống.


(defun os_on_off ()
  (if (/= (getvar 'osmode) 0) (progn (setq bien_mode (getvar 'osmode)) (setvar 'osmode 0))
    (progn (if bien_mode (setvar 'osmode bien_mode))))
  
  )

 

Bạn lại hiểu nhầm giữa osnap và osmode rồi.

10 phút trước, ngokiet đã nói:

(setvar 'osmode (boole 6 (getvar 'osmode) 16384))

Thử code trên

Oh đúng cái mình cần luôn, cảm ơn bạn nhé !

Vậy hóa ra lâu nay ko để ý là:

osmode 1 là endpoint - osnap bật

osmode 16385 là endpoint - osnap tắt

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
32 phút trước, Duong Nhat Duy đã nói:

Vậy không có cách này tắt được bằng lisp hả bạn ơi ?

Mình cần tắt bắt điểm mà ko tác động vào osmode ý

Do chỗ tô đen khó hiểu quá!

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 phút trước, Doan Van Ha đã nói:

Do chỗ tô đen khó hiểu quá!

Do tăt mở không phải là biến riêng mà nó chỉ là 1 bit trong osmode thôi. Nên chỉ thay đổi bit đó là được. Có thể +/- 16384 là được.

Nhiều bác viết lisp hay set về 0 nên khi hàm lỗi mà ko viết hàm bẫy lỗi làm mất setting osmode rất khó chịu. Dùng cách này thì ok hơn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
3 phút trước, ngokiet đã nói:

Do tăt mở không phải là biến riêng mà nó chỉ là 1 bit trong osmode thôi. Nên chỉ thay đổi bit đó là được. Có thể +/- 16384 là được.

Nhiều bác viết lisp hay set về 0 nên khi hàm lỗi mà ko viết hàm bẫy lỗi làm mất setting osmode rất khó chịu. Dùng cách này thì ok hơn.

Tôi hiểu. Nhưng do câu tô đen hơi khó hiểu thôi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
49 phút trước, tien2005 đã nói:

Vậy có đoạn code nào để kiểm tra osnap đang ON/OFF hay không?

(< (getvar ‘osmode) 16384)

 

Lưu ý là osmode = 0 dù ko bắt điểm thì osnap vẫn on.

Vì bít check cuối nên mình dùng hàm >. Check các bit khác dùng hàm boole.

 

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
20 phút trước, anhGeodesy đã nói:

Xin chỉ giáo:

Hàm (vla-get-elevation obj) lấy Z của Polyline vậy có hàm nào Vla lấy được Z của Text không? xin cảm ơn !

Không có hàm trực tiếp mà phải lấy vị trí sau đó lấy caddr của nó.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

27 phút trước, Doan Van Ha đã nói:

Không có hàm trực tiếp mà phải lấy vị trí sau đó lấy caddr của nó.

Cảm ơn Bác @Doan Van Ha Cháu đang Sửa cái đoạn Lisp phối màu Đường đồng mức của bác Link:

Đoạn Code :

(defun SetColor(lstobj dz / vung col1 col2 lst_elev ocol oRGBcol lst_col)
 (setq lst_elev (mapcar '(lambda(obj) (fix (/ (vla-get-elevation obj) dZ))) lstobj))
 (setq lst_elev (vl-sort lst_elev '<) vung (- (last lst_elev) (car lst_elev)))
; (setq col1 (mapcar 'float (TrueColor-split (cdr (assoc 420 (acad_truecolordlg (cons 420 (LM:RGB->True 255 0 0)) nil))))))
; (setq col2 (mapcar 'float (TrueColor-split (cdr (assoc 420 (acad_truecolordlg (cons 420 (LM:RGB->True 40 255 40)) nil))))))
 (setq col1 (mapcar 'float '(255 0 0)) col2 (mapcar 'float '(0 0 255)))
 (setq lst_col (RangeCol col1 col2 vung))
 (foreach obj lstobj
  (setq ocol (vlax-get-property obj 'TrueColor) oRGBcol (mapcar 'fix (nth (- (fix (/ (vla-get-elevation obj) dZ)) (car lst_elev)) lst_col)))
  (vlax-invoke-method ocol 'SetRGB (car oRGBcol) (cadr oRGBcol) (caddr oRGBcol))
  (vlax-put-property obj 'TrueColor ocol)
  (vla-update obj)))

 

Đây là Code lấy Z Nhưng update Màu thì cháu đang bị vướng.

(defun c:00 (/ Lstename Lst_Pnt)
(setq ss (ssget '((0 . "TEXT"))))
(setq Lstename (GE:SS->Lst ss nil)) ;(princ Lstename)
(setq Lst_Pnt (mapcar '(lambda (ename)
             (setq Ndt (cdr (assoc 1 (entget ename)))
                   Pnt (TD:Text-Base (cdr (assoc -1 (entget ename))))
             )
               )
              Lstename
          )
)
  (setq Lst_elev (mapcar '(lambda (elev)
             (Setq Caodo (Last elev))
               )
             Lst_Pnt
          )
)
  (princ Lst_elev)
  )

(defun TD:Text-Base (ent / MA71 MA72 X11); Ham xet Justify lay dung toa do By TDuan
  (setq Ma10 (cdr (assoc 10 (entget ent))))
  (setq Ma11 (cdr (assoc 11 (entget ent))))
  (setq X11 (car Ma11))
  (setq Ma71 (cdr (assoc 71 (entget ent))))
  (setq Ma72 (cdr (assoc 72 (entget ent))))
  (if (or (and (= Ma71 0) (= Ma72 0) (= X11 0))
      (and (= Ma71 0) (= Ma72 3))
      (and (= Ma71 0) (= Ma72 5))
      )
    Ma10
    Ma11
  )
)
;(setq lstEnt (GE:SS->Lst ss nil))
;----- SelectionSet -> List Ename or Vla-object
(defun GE:SS->Lst (ss flag / lst)
  (and ss
       (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
       (if flag
     (setq lst (mapcar 'vlax-ename->vla-object lst))
       )
  )
  lst
)

Để áp dụng Phối màu cho Text Cao độ, Nhưng bị vướng chưa làm được, Mong Bác trợ giúp. trân trọng và cảm ơn Bác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tôi muốn hỏi về COLOR.

Giả dụ tôi lấy được màu màn hình, có chỉ số là n (hoặc 3 màu RGB). Tôi muốn tìm 1 màu gần giống màu này thì có nguyên tắc tìm không?

Lý do: tôi muốn tạo các đối tượng có màu gần giống màu màn hình để nhìn nó chỉ lờ mờ (do không biết trước màu màn hình mà user đang dùng).

VD: khi màu màn hình là Black thì màu 250 là gần giống.

Ai biết xin chỉ giùm, cám ơn.   

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ} trướ}c, Doan Van Ha đã nói:

Tôi muốn hỏi về COLOR.

Giả dụ tôi lấy được màu màn hình, có chỉ số là n (hoặc 3 màu RGB). Tôi muốn tìm 1 màu gần giống màu này thì có nguyên tắc tìm không?

Lý do: tôi muốn tạo các đối tượng có màu gần giống màu màn hình để nhìn nó chỉ lờ mờ (do không biết trước màu màn hình mà user đang dùng).

VD: khi màu màn hình là Black thì màu 250 là gần giống.

Ai biết xin chỉ giùm, cám ơn.   

 

https://stackoverflow.com/questions/7309506/converting-rgb-colors-to-closest-aci-color-in-c-sharp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
23 giờ trước, Doan Van Ha đã nói:

Tôi muốn hỏi về COLOR.

Giả dụ tôi lấy được màu màn hình, có chỉ số là n (hoặc 3 màu RGB). Tôi muốn tìm 1 màu gần giống màu này thì có nguyên tắc tìm không?

Lý do: tôi muốn tạo các đối tượng có màu gần giống màu màn hình để nhìn nó chỉ lờ mờ (do không biết trước màu màn hình mà user đang dùng).

VD: khi màu màn hình là Black thì màu 250 là gần giống.

Ai biết xin chỉ giùm, cám ơn.   

Hình như ý bác là muốn làm mờ đối tương. Chăc dung để review grread. 

Mình nghĩ là nên thay dổi thuộc tình transparent thì dễ cho bạn hơn là thay đổi màu. Mình thường sài cách này.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
9 phút trước, ngokiet đã nói:

Hình như ý bác là muốn làm mờ đối tương. Chăc dung để review grread. 

Mình nghĩ là nên thay dổi thuộc tình transparent thì dễ cho bạn hơn là thay đổi màu. Mình thường sài cách này.

Không phải dùng grread.

Tôi vẫn muốn thấy các objects này, nhưng thích nó có màu gần màu nền để vẫn nhìn thấy nhưng chỉ lờ mờ thôi (đừng tương phản với màu nền quá mà tốn V-Roto)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Trong đoạn mã của bạn, người viết đã chủ định chỉ bật từng chức năng bắt điểm. Cụ thể:

lệnh (setvar "osmode" 512) là chỉ bật chức năng bắt NEArest.

lệnh (setvar "osmode" 128) là chỉ bật chức năng PERpendicular

lệnh (setvar "osmode" 1) là chỉ bật chức năng ENDpoint

 

Muốn không tắt chức năng này, bạn chỉ cần vô hiệu hóa các mã (setvar "osmode" xxx) với xxx là một số khác 0. Bằng cách xóa dòng lệnh đó đi hoặc thêm dấu chấm phẩy (:lol: vào đầu dòng lệnh.

 

địa chỉ chữa trị bệnh đau tinh hoàn ở Biên Hòa
chi phí chữa trị bệnh rối loạn cương dương ở Biên Hòa
địa chỉ chữa trị bệnh rối loạn cương dương ở Biên Hòa
chi phí chữa trị bệnh vô sinh hiếm muộn ở Biên Hòa

  • Vote giảm 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Chào các bác! Em đang viết DCL nhưng đang bị vướng bởi nút thắt này. Em muốn tích vào các toggle thì nó là Yes và không tích là No mà nó cứ sai hoài! Mong các bác chỉ dùm. Cảm ơn các bác nhiều!

 

 

(vl-load-com)
(defun C:00 (/ ANSDC ANSKCDC ANSKH ANSMSS CAOCHU_TD CAOCHU_TN DCH DCL DES KCDAUCO KC_COT KC_HANG MSS0 MSS_TD PATH_NTD SOCOTMC TLD1 TLD1_TN TLN1	TLN1_TN	USEBUTTON WIDTHMD)
  (defun *error* (msg)
    (if	(= 'file (type des))
      (close des)
    )
    (if	(and (= 'int (type dch)) (< 0 dch))
      (unload_dialog dch)
    )
    (if	(and (= 'str (type dcl)) (findfile dcl))
      (vl-file-delete dcl)
    )
    (if	(and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")))
      (princ (strcat "\nError: " msg))
    )
    (princ)
  )
  (command "-style" "Times New Roman" "Times New Roman" 0 1 0 "" "")
  (Create_dialog_VETD_VETN)
  (setq dch (load_dialog dcl))
  (end_list)

  (setq Path_ntd "")
  (action_tile
    "InputFile"
    (vl-prin1-to-string
      (quote (if (setq Path_ntd	(getfiled "Select Input File"
					  (getvar "dwgprefix")
					  "ntd;*"
					  16
				)
		 )
	       (set_tile "box_Input" Path_ntd)
	     )

      )
    )
  )
;;;;;;;;;;;;;;;;PHAN TRAC DOC;;;;;;;;;;;;;;;;;;;;;;;;;
  (action_tile "box_TLD1" "(setq TLD1 (get_tile \"box_TLD1\"))")
  (setq TLD1 (get_tile "box_TLD1"))
  (action_tile "box_TLN1" "(setq TLN1 (get_tile \"box_TLN1\"))")
  (setq TLN1 (get_tile "box_TLN1"))
  (action_tile "box_CC1" "(setq Caochu_TD (get_tile \"box_CC1\"))")
  (setq Caochu_TD (get_tile "box_CC1"))
  (action_tile "box_MSS1" "(setq MSS_TD (get_tile \"box_MSS1\"))")
  (setq MSS_TD (get_tile "box_MSS1"))
  (action_tile
    "VETRACDOC"
    (strcat
      "(done_dialog)(setq UseButton 1))"
    )
  )





;;;;;;;;;;;;;;;;PHAN TRAC NGANG;;;;;;;;;;;;;;;;;;;;;;;;;
  (Check_Toggle)
  (action_tile "box_TLD2" "(setq TLD1_TN (get_tile \"box_TLD2\"))")
  (setq TLD1_TN (get_tile "box_TLD2"))
  (action_tile "box_TLN2" "(setq TLN1_TN (get_tile \"box_TLN2\"))")
  (setq TLN1_TN (get_tile "box_TLN2"))
  (action_tile "box_CC2" "(setq Caochu_TN (get_tile \"box_CC2\"))")
  (setq Caochu_TN (get_tile "box_CC2"))
  (action_tile "box_SC" "(setq SocotMC (get_tile \"box_SC\"))")
  (setq SocotMC (get_tile "box_SC"))
  (action_tile "box_KCC" "(setq KC_COT (get_tile \"box_KCC\"))")
  (setq KC_COT (get_tile "box_KCC"))
  (action_tile "box_KCH" "(setq KC_HANG (get_tile \"box_KCH\"))")
  (setq KC_HANG (get_tile "box_KCH"))
  ;;;TOGGLE
  (action_tile "toggle_KCDC" "(Check_Toggle)(setq tog_KCDC $value)")
;;;  (setq tog_KCDC (get_tile "toggle_KCDC"))
  (action_tile "toggle_MSS" "(Check_Toggle)(setq tog_MSS_TN $value)")
;;;  (setq tog_MSS_TN (get_tile "toggle_MSS"))
  (action_tile "toggle_KH" "(Check_Toggle)(setq tog_KH $value)")
;;;  (setq tog_KH (get_tile "toggle_KH"))
  (action_tile "toggle_DC" "(Check_Toggle)(setq tog_DC $value)")
;;;  (setq tog_DC (get_tile "toggle_DC"))
;;;;;;KHOANG CACH DAU CO TU DONG
  (if (= tog_KCDC "1")
    (progn
      (setq ansKCDC "Yes")
      (setq KCDauCo "0")
    )
    (progn
      (setq ansKCDC "No")
      (action_tile "box_KCDC"   "(setq KCDauCo (get_tile \"box_KCDC\"))")
      (setq KCDauCo (get_tile "box_KCDC"))
    )
  )

;;;;;;MUC SO SANH TU DONG
  (if (= tog_MSS_TN "1")
    (progn
      (setq ansMSS "Yes")
      (setq MSS0 "0")
    )
    (progn
      (setq ansMSS "No")
      (action_tile "box_MSS_TN"   "(setq MSS0 (get_tile \"box_MSS_TN\"))")
      (setq MSS0 (get_tile "box_MSS_TN"))
    )
  )


;;;;;;KY HIEU DIA VAT
  (if (= tog_KH "1")
    (setq ansKH "Yes")
    (setq ansKH "No")
  )
  
;;;;;MEP DUONG CU
  (if (= tog_DC "1")
    (progn
      (setq ansDC "Yes")
;;;      (action_tile "box_DC"   "(setq WidthMD (get_tile \"box_DC\"))")
;;;      (setq WidthMD (get_tile "box_DC"))
    )
    (progn
      (setq ansDC "No")
      (setq WidthMD "0")
    )
  )

  
  (action_tile
    "VETRACNGANG"
    (strcat
      "(done_dialog)(setq UseButton 2))"
    )
  )
  (action_tile
    "accept"
    "(done_dialog)
       (vl-file-delete dcl)"
  )
  (action_tile
    "cancel"
    "(done_dialog)
       (vl-file-delete dcl)"
  )

  (start_dialog)
  (unload_dialog dch)
  (if (= UseButton 1)
    (progn
      (if (/= Path_ntd "")
	(progn
	  (Func_VETD Path_ntd (atof TLD1) (atof TLN1) (atof Caochu_TD) (atof MSS_TD))
	  (done_dialog)
	)
	(Alert "B\U+1EA1n ch\U+01B0a ch\U+1ECDn file ntd!")
      )
    )
  )

  (if (= UseButton 2)
    (progn
      (if (/= Path_ntd "")
	(progn
	  (prompt
	    (strcat
		"\n"
		"AnsKCDC: " ansKCDC
		"\n"
		"ansMSS : " ansMSS
		"\n"
		"AnsKH: " AnsKH
		"\n"
		"AnsDC : " AnsDC
		"\n"
	    )
	  )
;;;	  (Func_VETN ansKH
;;;		     ansDC
;;;		     Path_ntd
;;;		     (atof WidthMD)
;;;		     ansMSS
;;;		     (atof MSS0)
;;;		     (atof TLD1_TN)
;;;		     (atof TLN1_TN)
;;;		     (atof Caochu_TN)
;;;		     (atof SocotMC)
;;;		     (atof KC_HANG)
;;;		     (atof KC_COT)
;;;		     ansKCDC
;;;		     (atof KCDauCo)
;;;	  )
	  (done_dialog)
	)
	(Alert "B\U+1EA1n ch\U+01B0a ch\U+1ECDn file ntd!")
      )
    )
  )



  (vl-file-delete dcl)
  (princ)
)
(defun toggleSet ( k kL )
    (foreach x kL (set_tile x "0")) (set_tile k "1") k
  )
(defun Check_Toggle ()
  (if (= (atoi (get_tile "toggle_MSS")) 1)
    (progn
      (mode_tile "box_MSS_TN" 2)
      (mode_tile "Text_MSS" 1)
    )
    (progn
      (mode_tile "box_MSS_TN" 0)
      (mode_tile "Text_MSS" 0)
    )
  )
  (if (= (atoi (get_tile "toggle_KCDC")) 1)
    (progn
      (mode_tile "box_KCDC" 2)
      (mode_tile "Text_KCDC" 1)
    )
    (progn
      (mode_tile "box_KCDC" 0)
      (mode_tile "Text_KCDC" 0)
    )
  )
  (if (= (atoi (get_tile "toggle_DC")) 1)
    (progn
      (mode_tile "box_DC" 0)
      (mode_tile "Text_DC" 0)
    )
    (progn
      (mode_tile "box_DC" 2)
      (mode_tile "Text_DC" 1)
    )
  )
)
(defun Create_dialog_VETD_VETN ()
  (setq dcl (vl-filename-mktemp nil nil ".dcl"))
  (setq des (open dcl "w"))
  (foreach x
	     '("temp : dialog"
	       "{"
	       "label = \"CH\U+01AF\U+01A0NG TRÌNH V\U+1EBC TR\U+1EAEC D\U+1ECCC - TR\U+1EAEC NGANG\";"
	       ": text"
	       "{"
	       "label = \"Ng\U+01B0\U+1EDDi vi\U+1EBFt: Nguy\U+1EC5n Th\U+00E0nh Du\U+00E2n\";"
	       "alignment = centered;"
	       "}"
	       ": text"
	       "{"
	       "label = \"Email: Heaven2407@gmail.com - Mobile: 0972.0168.25\";"
	       "alignment = centered;"
	       "}"

	       "spacer;" "spacer;"

	       
	       ": boxed_column"
	       "{"
	       "label = \"Ch\U+1ECDn \U+0111\U+01B0\U+1EDDng d\U+1EABn\";"
	       "fixed_width = 10;"
	       "alignment = centered;"
	       "width = 20.0;"

	       ": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"&File\";"
	       "fixed_width = true;"
	       
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_Input\";"
	       "fixed_width = true;"
	        "width = 50.0;"
	       "}"
	       
	       ": button"
		"{"
		"label = \"Browse...\";"
		"key = \"InputFile\";"
		"is_default = false;"
		"width = 15;" "fixed_width = true;"
	        "alignment = centered;"
		"}"
	       "}"



	       
	       "}"
                 
	       



	       
	       ": row"
	       "{"
		": boxed_column"
		"{"
		"label = \" Tr\U+1EAFc D\U+1ECDc \";"
	        "fixed_width = 10;"
	       "alignment = centered;"
	        "width = 20.0;"

	       ": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"T\U+1EF7 l\U+1EC7 \U+0111\U+1EE9ng 1 / \";"
	       "fixed_width = true;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_TLD1\";"
	       "fixed_width = true;"
	       "value = \"100\";"
	       "}"
	       "}"

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"T\U+1EF7 l\U+1EC7 ngang 1 / \";"
	       "fixed_width = true;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_TLN1\";"
	       "fixed_width = true;"
	       "value = \"1000\";"
	       "}"
	       "}"

	       

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Cao ch\U+1EEF \";"
	       "fixed_width = true;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_CC1\";"
	       "fixed_width = true;"
	       "value = \"2\";"
	       "}"
	       "}"



	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"M\U+1EE9c so s\U+00E1nh \";"
	       "fixed_width = true;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_MSS1\";"
	       "fixed_width = true;"
	       "value = \"0\";"
	       "}"
	       "}"
	       
 		"spacer;" "spacer;" "spacer;" "spacer;"
	       
		": button"
		"{"
		"label = \"  V\U+1EBD Tr\U+1EAFc D\U+1ECDc   \";"
		"key = \"VETRACDOC\";"
		"is_default = false;"
		"width = 15;" "fixed_width = true;"
	        "alignment = centered;"
		"}"



	       
	       
               "}"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

	       ": row"
	       "{"
	       	": boxed_column"
		"{"
		"label = \" Tr\U+1EAFc Ngang \";"
	        "fixed_width = 10;"
	        "width = 20.0;"
	       

	       ": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"T\U+1EF7 l\U+1EC7 \U+0111\U+1EE9ng 1 / \";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_TLD2\";"
	       "fixed_width = true;"
	       "value = \"200\";"
	       "}"
	       "}"

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"T\U+1EF7 l\U+1EC7 ngang 1 / \";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_TLN2\";"
	       "fixed_width = true;"
	       "value = \"200\";"
	       "}"
	       "}"

	       

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Cao ch\U+1EEF\";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_CC2\";"
	       "fixed_width = true;"
	       "value = \"0.4\";"
	       "}"
	       "}"



	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"S\U+1ED1 c\U+1ED9t\";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_SC\";"
	       "fixed_width = true;"
	       "value = \"10\";"
	       "}"
	       "}"

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Kho\U+1EA3ng c\U+00E1ch c\U+1ED9t\";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_KCC\";"
	       "fixed_width = true;"
	       "value = \"100\";"
	       "}"
	       "}"

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Kho\U+1EA3ng c\U+00E1ch h\U+00E0ng \";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_KCH\";"
	       "fixed_width = true;"
	       "value = \"100\";"
	       "}"
	       "}"


	
	       ":toggle"
	       "{"
	       "alignment = centered ;"
	       "label = \"Auto kho\U+1EA3ng c\U+00E1ch \U+0111\U+1EA7u c\U+1EDD\" ;"
		"key = \"toggle_KCDC\" ;"
		"}"
	       
	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Kho\U+1EA3ng c\U+00E1ch \U+0111\U+1EA7u c\U+1EDD\";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "key = \"Text_KCDC\";"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_KCDC\";"
	       "value = \"20\";"
	       "fixed_width = true;"
	       "}"
	       "}"


	       
	       ":toggle"
	       "{"
	       "alignment = centered ;"
	       "label = \"So s\U+00E1nh t\U+1EF1 \U+0111\U+1ED9ng\" ;"
		"key = \"toggle_MSS\" ;"
		"}"

	       	": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Nh\U+1EADp m\U+1EE9c so s\U+00E1nh\";"
	       "fixed_width = true;"
	       "alignment = left;"
	       "key = \"Text_MSS\";"
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_MSS_TN\";"
	       "fixed_width = true;"
	       "value = \"0\";"
	       "}"
	       "}"




	       

	       ":toggle"
	       "{"
	       "alignment = centered ;"
	       "label = \"Ch\U+00E8n k\U+00FD hi\U+1EC7u l\U+00EAn Tr\U+1EAFc Ngang\" ;"
		"key = \"toggle_KH\" ;"
		"}"


	       ":toggle"
	       "{"
	       "alignment = centered ;"
	       "label = \"V\U+1EBD l\U+1EDBp \U+0111\U+01B0\U+1EDDng c\U+0169\" ;"
		"key = \"toggle_DC\" ;"
		"}"

	       ": row"
	       "{"
	       "children_alignment = right;"
	       ": text"
	       "{"
	       "label = \"Nh\U+1EADp \U+0111\U+1ED9 d\U+00E0y l\U+1EDBp \U+0111\U+01B0\U+1EDDng c\U+0169\";"
	       "fixed_width = true;"
	       "key = \"Text_DC\" ;"
	       "alignment = left;"
	       
	       "}"
	       ": edit_box"
	       "{"
	       "key = \"box_DC\";"
	       "fixed_width = true;"
	       "value = \"0.1\";"
	       "}"
	       "}"


	       

 		"spacer;" "spacer;" "spacer;" "spacer;"
	       
		": button"
		"{"
		"label = \"V\U+1EBD Tr\U+1EAFc Ngang\";"
		"key = \"VETRACNGANG\";"
		"is_default = false;"
		"width = 15;" "fixed_width = true;"
	        "alignment = centered;"
		"}"

	       
		"}"
	       "}"
 	       "}"


	       
	       "spacer;" "spacer;" "spacer;" 
	       "ok_cancel;"
	       "}"
	      )
    (write-line x des)
  )
  (not (setq des (close des)))
  (< 0 (setq dch (load_dialog dcl)))
  (new_dialog "temp" dch)
)


 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn hãy làm chỉ một nút togle  cho 1 editbox để test xem có được hay không rồi hãy triển khai hàng  loạt, tôi cảm thấy bạn không kiểm soát được dcl .

Nút togle trả về giá trị string "0" hoặc "1" nên không cần atoi làm gì, nếu bạn cần tắt một tile editbox thì mới cần.

Như bạn cần khi tick  "ON" vào nút có key "tg1" để làm mờ edit_box có key "ed1" bạn sẽ làm như sau:

(action_tile "tg1" (mode_tile "ed1" (atoi $value)))

ở đây $value là giá trị hiện tại của "tg1"

còn với thực hiện action

(defun hamdulieutracdoc ()

(setq kieuve 1

           tg1 (get_tile "tg1")

           ed1 (get_tile "ed1)

           tg2 ....

.....));end hamdulieutracdoc

(action_tile "vetracdoc" "(hamdulieutracdoc)(done_dialog 1)")

(action_tile "vetracngang" "(hamdulieutracngang)(done_dialog 1)")

(action_tile "cancel" "(done_dialog 0)")

bạn bỏ nút OK đi vì nó chẳng để làm gì, và nút Cancel cũng không cần thiết vì có thể tắt bằng cách đóng cửa sổ

nếu kiểu vẽ = 1 sẽ thi hành hàm vẽ trắc dọc

(if  (= kieuve 1) (vetracdoc))

(if (= kieuve 2) (vetracngang))

 

 

 

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 phút trước, cuongtk2 đã nói:

Bạn hãy làm chỉ một nút togle  cho 1 editbox để test xem có được hay không rồi hãy triển khai hàng  loạt, tôi cảm thấy bạn không kiểm soát được dcl .

Nút togle trả về giá trị string "0" hoặc "1" nên không cần atoi làm gì, nếu bạn cần tắt một tile editbox thì mới cần.

Như bạn cần khi tick  "ON" vào nút có key "tg1" để làm mờ edit_box có key "ed1" bạn sẽ làm như sau:

(action_tile "tg1" (mode_tile "ed1" (atoi $value)))

ở đây $value là giá trị hiện tại của "tg1"

còn với thực hiện action

(defun hamdulieutracdoc ()

(setq kieuve 1

           tg1 (get_tile "tg1")

           ed1 (get_tile "ed1)

           tg2 ....

.....));end hamdulieutracdoc

(action_tile "vetracdoc" "(hamdulieutracdoc)(done_dialog 1)")

(action_tile "vetracngang" "(hamdulieutracngang)(done_dialog 1)")

(action_tile "cancel" "(done_dialog 0)")

bạn bỏ nút OK đi vì nó chẳng để làm gì, và nút Cancel cũng không cần thiết vì có thể tắt bằng cách đóng cửa sổ

nếu kiểu vẽ = 1 sẽ thi hành hàm vẽ trắc dọc

(if  (= kieuve 1) (vetracdoc))

(if (= kieuve 2) (vetracngang))

 

 

 

 

Cảm ơn bác nhiều!

Em mới tập tành về DCL nên còn lộn xộn. Qua cách giải thích của bác em đã hiểu. Vừa rồi em cũng đã được bác @Doan Van Ha giúp đỡ và tìm ra chỗ sai rồi. 

Chân thành cảm ơn bác về sự góp ý quý báu.

P/s: Em đợi cả tối, mãi đến đêm mới được hỗ trợ. Hii.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bác cho em hỏi chút:

Hàm (vl-directory-files  Dir "ext" 1)  trả về danh sách file trong folder Dir,

nhưng nếu các file chứa tiếng việt thì danh sách trả về không đúng.

Vậy cho em hỏi có hàm nào có thể lấy danh sách file mà trong tên của nó có chứa tiếng việt không ạ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
16 phút trước, Doan Nguyen Van đã nói:

Các bác cho em hỏi chút:

Hàm (vl-directory-files  Dir "ext" 1)  trả về danh sách file trong folder Dir,

nhưng nếu các file chứa tiếng việt thì danh sách trả về không đúng.

Vậy cho em hỏi có hàm nào có thể lấy danh sách file mà trong tên của nó có chứa tiếng việt không ạ?

Mấy thằng VL/VLA/VLAX rất dốt tiếng Việt, trong khi các hàm liên quan đến file hầu hết là thuộc nhóm đó. Nên hình như không có (?)

Theo chủ quan cá nhân tôi là tôi đoạn tuyệt với tên file Vietnamese cho đỡ đau đầu, vì nó không đụng chỗ này rồi cũng đụng chỗ khác.

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×