Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Nguyen Hoanh

Viết Lisp theo yêu cầu

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

Đọan code mình sửa lại như sau:

(DEFUN C:BU()

(setq od (getvar "dimzin"))

(setvar "dimzin" 0)

(setq

BT (getint "\n Buoc @:")

TP (getint "\n So thap phan:")

)

(while (setq

DIM (car(entsel "\n Chon kich thuoc dim:"))

ENT (cdr(assoc 42 (entget DIM)))

entc (fix (/ ENT BT))

)

(command "dimedit" "n" (strcat (rtos entc 2 TP) "@" (itoa BT) "=<>") DIM "")

(setvar "dimzin" od)

(princ)

)

)

Chạy ok theo ý mình rồi nhưng còn chỗ "Số thap phan:" mình muốn cho nó lúc nào giá trị cũng =0 mà hok đuợc. Mong giúp đỡ.

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
Đọan code mình sửa lại như sau:

(DEFUN C:BU()

(setq od (getvar "dimzin"))

(setvar "dimzin" 0)

(setq

BT (getint "\n Buoc @:")

TP (getint "\n So thap phan:")

)

(while (setq

DIM (car(entsel "\n Chon kich thuoc dim:"))

ENT (cdr(assoc 42 (entget DIM)))

entc (fix (/ ENT BT))

)

(command "dimedit" "n" (strcat (rtos entc 2 TP) "@" (itoa BT) "=") DIM "")

(setvar "dimzin" od)

(princ)

)

)

Chạy ok theo ý mình rồi nhưng còn chỗ "Số thap phan:" mình muốn cho nó lúc nào giá trị cũng =0 mà hok đuợc. Mong giúp đỡ.

Đơn giản mà. Bạn bỏ dòng này đi TP (getint "\n So thap phan:")

 

Còn trong dòng này bạn thay chữ TP bằng số 0 là được

(command "dimedit" "n" (strcat (rtos entc 2 TP) "@" (itoa BT) "=") DIM "")

Mong rằng bạn hiểu

Nhưng mà cho Tue_NV hỏi tí nhé : bạn dùng hàm while mục đích làm gì thế?

Nếu mục đích là bạn chọn cho được Dim thì bạn đã sai rồi. Vì một khi bạn chọn không trúng dim thì Lisp sẽ báo lỗi và thoát lệnh ngay

  • 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

nếu như thay =0 hay dùng hàm fix thì đôi lúc phép tính không đúng, do sai số của môi trường vẽ trong cad. Mình đã thử rồi. Còn cách nào khác không vậy bạ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
ah, được rồi bạn ơi. Mình xin lỗi nha, còn While mình muốn tạo vòng lặp, đơn giản vậy thôi ah, có gì sai hả bạn.

Khi dùng hàm (rtos entc 2 0) thì đã đưa về số chữ số thập phân là 0 nên hàm fix là không cần thiết nữa, bạn có thể bỏ hàm fix này được.

Còn bạn sử dụng hàm while mình xin lỗi đã hiểu nhầm ý của bạn. Khi bạn pick trúng đối tượng thì lặp còn nếu pick không trúng đối tượng thì nó sẽ báo lỗi và thoát lệnh ngay. Đó cũng là do ý của người lập trình thôi

  • 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

Bạn Tue_NV mình mới nghĩ ra ý mới để đọan code của mình hay hơn nhưng do mình mới bắt đầu viết lisp nên còn rất hạn chế, mình nhờ bạn hỗ trợ mình đọan code kiểm tra để lấy số chia hết còn chia dư thì báo lổi và thoát lệnh.

VD: Có đọan Dim là 3000 lấy giá trị 3000 chia cho 1000 thì ok, còn chia cho số khác nếu kết quả ra dư thì báo lỗi và thóat lệnh. Mình nói vậy không biết bạn hiểu ý mình không. Cám ơn bạn nhiều.

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 Tue_NV mình mới nghĩ ra ý mới để đọan code của mình hay hơn nhưng do mình mới bắt đầu viết lisp nên còn rất hạn chế, mình nhờ bạn hỗ trợ mình đọan code kiểm tra để lấy số chia hết còn chia dư thì báo lổi và thoát lệnh.

VD: Có đọan Dim là 3000 lấy giá trị 3000 chia cho 1000 thì ok, còn chia cho số khác nếu kết quả ra dư thì báo lỗi và thóat lệnh. Mình nói vậy không biết bạn hiểu ý mình không. Cám ơn bạn nhiều.

Đây bạn:

(DEFUN C:BU()
(setq od (getvar "dimzin"))
(setvar "dimzin" 0)
(setq
BT (getint "\n Buoc @:")
)
(while (setq
DIM (car(entsel "\n Chon kich thuoc dim:"))
ENT (cdr(assoc 42 (entget DIM)))
entc (/ ENT BT)
sodu (- entc (fix entc))
)
(if (= sodu 0)
(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=") DIM "")
)
(if (/= sodu 0) (alert "\n phep chia co du"))
)
(setvar "dimzin" od)
(princ)

)

Mình xin đính chính : Có đọan Dim là 3000 lấy giá trị 3000 chia cho bước @ (BT) và bước @ là ước số của 3000 thì ok, còn nếu chia cho các số khác mà không phải là ước số của 3000 thì hiện ra bảng thông báo là phép chia có dư và cho phép ta chọn tiếp đối tượng. Như vậy thì hay hơn phải không bạn minh tu?

  • 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

Hi hi, cám hơn bạn đã hiểu ý của mình. Nhưng có 1 cái lỗi là hàm fix nó cứ báo lỗi mặc dù kích thước Dim vẫn đúng, do sai số của môi trường cad, xóa dim đó dim lại dim mới là hết lỗi, không biết có khắc phục được không vậy bạ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
Bạn Tue_NV mình mới nghĩ ra ý mới để đọan code của mình hay hơn nhưng do mình mới bắt đầu viết lisp nên còn rất hạn chế, mình nhờ bạn hỗ trợ mình đọan code kiểm tra để lấy số chia hết còn chia dư thì báo lổi và thoát lệnh.

VD: Có đọan Dim là 3000 lấy giá trị 3000 chia cho 1000 thì ok, còn chia cho số khác nếu kết quả ra dư thì báo lỗi và thóat lệnh. Mình nói vậy không biết bạn hiểu ý mình không. Cám ơn bạn nhiều.

Chào bạn minhtu2004,

Để kiểm tra theo ý của bạn, bạn có thể sử dụng hàm điều kiện if bạn ạ.

Ví dụ:

(if (/= (fix (/ ENT BT)) (/ ENT BT))

(progn

(protmpt "\n Ban da chon sai gia tri chia. Hãy chọn lại ")

(setq BT (getreal "\n Buoc @: "))

)

)

Bạn chú ý là ở đây, lisp không thoát ra mà yêu cầu bạn chọn lại giá trị cho hợp lý. Khi đó vòng lặp While của bạn mới bắt đầu thực hiện.

Hy vọng bạn sẽ hoàn thành ý nguyện của bạ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
ah, mình sửa hàm fix thành hàm abs thì nó ok, như vậy nó co sai không vậy bạn. Hàm abs cũng không ok rồi bạn ơi.

Bạn sửa vậy không được vì hàm Abs trả về giá trị tuyệt đối chứ không phải giá trị nguyên. Hàm fix trả về giá trị phần nguyên của biểu thức nên (fix a) luôn nhỏ hơn hay bằng a bạn ạ.

Do đó giá trị của hàm abs tuy luôn dương nhưng chưa chắc đã nguyên, còn giá trị của hàm fix tuy luôn nguyên mà chưa chắc dương bạn a.

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

Mình sửa code nhu bạn Thanh Bình thì nó báo lỗi không chạy. Làm theo cách bạn Tue_NV thì chạy Ok rồi nhưng nó bị cái hàm fix nó không ổn định. Có thể thay hàm fix bằng hàm gì hay doan code nào cho thích hợp, mong mọi người giúp đỡ.

(DEFUN C:BU()

(setq od (getvar "dimzin"))

(setvar "dimzin" 0)

(setq

BT (getint "\n Buoc @:")

)

(while (setq

DIM (car(entsel "\n Chon kich thuoc dim:"))

ENT (cdr(assoc 42 (entget DIM)))

entc (/ ENT BT)

(if (/= (fix (/ ENT BT) (ENT BT))

(progn

(protmpt "\n Ban da chon sai gia tri chia. Ha~y cho.n la.i ")

(setq BT (getreal "\n Buoc @: "))

)

(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=<>") DIM "")

(setvar "dimzin" od)

(princ)

)

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 bạn minhtu2004,

Để kiểm tra theo ý của bạn, bạn có thể sử dụng hàm điều kiện if bạn ạ.

Ví dụ:

(if (/= (fix (/ ENT BT)) (/ ENT BT))

(progn

(protmpt "\n Ban da chon sai gia tri chia. Hãy chọn lại ")

(setq BT (getreal "\n Buoc @: "))

)

)

Bạn chú ý là ở đây, lisp không thoát ra mà yêu cầu bạn chọn lại giá trị cho hợp lý. Khi đó vòng lặp While của bạn mới bắt đầu thực hiện.

Hy vọng bạn sẽ hoàn thành ý nguyện của bạn.

Chào bác PhamthanhBinh.

Có lẽ bác chưa hiểu hết ý của bạn minhtu.

Trước khi viết Lisp Tue_NV đã chạy thử và thấy OK tất cả, nhưng không lường trước được sai số.

Ví dụ như bác dim kích thước một đoạn thẳng có kích thước là 2000.001 thì kích thước đó chạy ra kết quả là 2000 đúng không?

và với Lisp của bác như trên thì khi chọn dim 2000.001 sẽ báo lại cái dòng prompt trên. Bạn minhtu không muốn thế. Ý bạn đó là Lisp phải chạy như kích thước 2000 tròn số như bình thường. Đúng không bạn minhTu?

Tue_NV đã viết thêm vào code 1 khoảng sai số cho phép. Hy vọng bạn hài lòng

(DEFUN C:BU()
(setq od (getvar "dimzin"))
(setvar "dimzin" 0)
(setq
BT (getint "\n Buoc @:")
)
(while (setq
DIM (car(entsel "\n Chon kich thuoc dim:"))
ENT (cdr(assoc 42 (entget DIM)))
entc (/ ENT BT)
sodu (- entc (fix entc))
)
(if (/= (equal sodu 0.001 0.01) nil) 
(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=") DIM "")
)
(if (= (equal sodu 0.001 0.01) nil)  (alert "\n phep chia co du"))
)
(setvar "dimzin" od)
(princ)

)

  • 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

Vẫn không được bạn Tue_NV, vì sai số nó nhỏ quá. VD: có dim 9145 khi chỉnh cho hiện những số lẽ phía sau thì nó là 9144.99999958 vì thế cho nên nó báo lỗi. Trường hợp như vậy có sửa được không vậy bạn, hay có cách nào làm tròn giá trị dim không. Hỏi bạn hòai mình ngại quá. Cám ơn bạ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
Vẫn không được bạn Tue_NV, vì sai số nó nhỏ quá. VD: có dim 9145 khi chỉnh cho hiện những số lẽ phía sau thì nó là 9144.99999958 vì thế cho nên nó báo lỗi. Trường hợp như vậy có sửa được không vậy bạn. Hỏi bạn hòai mình ngại quá. Cám ơn bạn.

Upload file đó lên đây đi bạ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

Đọan code của mình:

(DEFUN C:BII()

(setq od (getvar "dimzin"))

(setvar "dimzin" 0)

(setq

BT (getint "\n Buoc @:")

)

(while (setq

DIM (car(entsel "\n Chon kich thuoc dim:"))

ENT (cdr(assoc 42 (entget DIM)))

entc (/ ENT BT)

sodu (- entc (fix entc))

)

(if (/= (equal sodu 0.00000001 0.01) nil)

(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=<>") DIM "")

)

(if (= (equal sodu 0.00000001 0.01) nil) (alert "\n Hay xem lai kich thuoc can than, kich thuoc bi sai"))

)

(setvar "dimzin" od)

(princ)

)

-Và đây là file cad:http://www.cadviet.com/upfiles/1_11.dwg

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
Đọan code của mình:

(DEFUN C:BII()

(setq od (getvar "dimzin"))

(setvar "dimzin" 0)

(setq

BT (getint "\n Buoc @:")

)

(while (setq

DIM (car(entsel "\n Chon kich thuoc dim:"))

ENT (cdr(assoc 42 (entget DIM)))

entc (/ ENT BT)

sodu (- entc (fix entc))

)

(if (/= (equal sodu 0.00000001 0.01) nil)

(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=") DIM "")

)

(if (= (equal sodu 0.00000001 0.01) nil) (alert "\n Hay xem lai kich thuoc can than, kich thuoc bi sai"))

)

(setvar "dimzin" od)

(princ)

)

-Và đây là file cad:http://www.cadviet.com/upfiles/1_11.dwg

Chào bạn minhtu2004,

Chào bác Tue_NV,

Cái đoạn code mình post trên đây hoàn toàn không nhằm mục tiêu sửa cái sai lệch nhỏ do chế độ bắt điểm của CAD mà là để giải quyết cái ý tưởng kiểm tra và thông báo lỗi khi chia có dư của bạn Minhtu2004, tuy nhiên do mình định hướng là không chỉ báo lỗi rồi thoát ra như bạn Minhtu 2004 đề nghị mà mình muốn lisp sẽ yêu cầu người dùng nhập lại giá trị đúng nên mới post cái ý tưởng đó lên để bạn minhtu 2004 suy nghĩ và hoàn thiện nó. Tuy nhiên do bạn Minhtu hiểu chưa đúng nên dã bổ sung nó vào trong vòng lặp While, không những vậy bạn Minhtu 2004 còn chép chưa đầy đủ nên thiếu đi các dấu ngoặc cần thiết nên lisp của bạn đó sửa không chạy được.

Thực ra đoạn code đó mình định bổ sung vào trước vòng lặp While của bạn Minhtu 2004 và còn phải đưa thêm một vòng lặp while nữa để cho lisp lặp cho tới khi người dùng nhập giá trị phù hợp. Khi đó mới bắt đầu thực hiện vòng lặp While của bạn Minhtu 2004.

Về ý tưởng này có khác một chút với cái lisp của bác Tue_NV đã viết đúng theo yêu cầu của bạn Minhtu 2004.

Chính vì có chỗ khác này nên mình mới post thử để bạn Minhtu 2004 xem có phù hợp không vì mình nghĩ nếu làm như vậy sẽ tốt hơn cho người dùng vì không phải chạy lại lisp nhiều lần khi chót nhập sai giá trị của biến bước BT.

Nếu bạn Minhtu 2004 thấy đồng ý thì mình sẽ hoàn thiện nó theo hướng này.

 

Về cái sai lệch nhỏ do chế độ bắt điểm này, theo mình nghĩ hoàn toàn có thể khắc phục đơn giản bằng cách lấy lại giá trị của biến ENT là được mà. Thay vì biến ENT được lấy là giá trị của hàm (cdr (assoc 42 (entget DIM))) ta có thể lấy nó là giá trị của hàm (rtos (cdr (assoc 42 (entget DIM))) ......). Khi đó ta hoàn toàn có thể xác định được độ chính xác cần thiết của biến ENT mà không còn phụ thuộc gì vào chế độ bắt điểm của CAD nữa. Cuối cùng ta dùng hàm atof để chuyển chuỗi kết quả của biến ENT này thành biến số thực ENT theo mong muốn của người dùng. Công đoạn tiếp theo vẫn y như cụ.

Bác Tue_NV và bạn Minhtu 2004 hãy thử suy nghĩ theo hướng này xem nhé.

 

Chúc thành công.

  • Vote tăng 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 bạn minhtu2004,

Chào bác Tue_NV,

Về ý tưởng này có khác một chút với cái lisp của bác Tue_NV đã viết đúng theo yêu cầu của bạn Minhtu 2004.

Chính vì có chỗ khác này nên mình mới post thử để bạn Minhtu 2004 xem có phù hợp không vì mình nghĩ nếu làm như vậy sẽ tốt hơn cho người dùng vì không phải chạy lại lisp nhiều lần khi chót nhập sai giá trị của biến bước BT.

Nếu bạn Minhtu 2004 thấy đồng ý thì mình sẽ hoàn thiện nó theo hướng này.

 

Về cái sai lệch nhỏ do chế độ bắt điểm này, theo mình nghĩ hoàn toàn có thể khắc phục đơn giản bằng cách lấy lại giá trị của biến ENT là được mà. Thay vì biến ENT được lấy là giá trị của hàm (cdr (assoc 42 (entget DIM))) ta có thể lấy nó là giá trị của hàm (rtos (cdr (assoc 42 (entget DIM))) ......). Khi đó ta hoàn toàn có thể xác định được độ chính xác cần thiết của biến ENT mà không còn phụ thuộc gì vào chế độ bắt điểm của CAD nữa. Cuối cùng ta dùng hàm atof để chuyển chuỗi kết quả của biến ENT này thành biến số thực ENT theo mong muốn của người dùng. Công đoạn tiếp theo vẫn y như cụ.

Bác Tue_NV và bạn Minhtu 2004 hãy thử suy nghĩ theo hướng này xem nhé.

 

Chúc thành công.

Chào bạn minhTu

Chào bác PhamThanhBinh :

Hoặc giải quyết theo cách trên và Tue_NV giải quyết theo cách của mình là sử dụng hàm Rnd(x).

Và theo ý bác PhamThanhBinh, Tue_NV đã hoàn thiện theo hướng là khi người dùng nhập sai bước BT thì cho phép nhập lại

;
(defun rnd(x);;;Round x, return INT
(if (>= x 0) (fix (+ x 0.5)) (fix (- x 0.5)))
) 
;
(DEFUN C:BU()
(setq od (getvar "dimzin"))
(setvar "dimzin" 0)
(setq
BT (getint "\n Buoc @:")
)
(while (setq
DIM (car(entsel "\n Chon kich thuoc dim:"))
ENT (rnd (cdr(assoc 42 (entget DIM))))
entc (/ ENT BT)
sodu (rem ent BT)
)
(if (= sodu 0)
(command "dimedit" "n" (strcat (rtos entc 2 0) "@" (itoa BT) "=") DIM "")
)
(if (/= sodu 0) 
(Progn
(alert "\n phep chia co du")
(if (not BTo) (setq BTo BT))
(setq BT (getint (strcat "\n Buoc @  :")))
(if (not BT) (setq BT BTo) (setq BTo BT))
)
)
)
(setvar "dimzin" od)
(princ)

)

Bạn Minh Tu sử dụng và cho biết ý kiến nhé. Hy vọng bạn hài lòng

  • Vote tăng 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

Cám ơn bạn Tue_NV, mình rất hài lòng đọan code bạn thêm vô cho mình và đã giải quyết được vấn đề. Mình cũng cám ơn bạn Thanh Bình đã gợi ý cho mình, vì mình mới viết lisp để hỗ trợ cho công việc và cũng mới bắt đầu học nên mình sẽ tự viết 1 lisp khác theo ý của bạn Thanh Bình để hiểu rõ thêm vấn đề, nếu có thắc mắc mình sẽ hỏi 2 bạn. Mong 2 bạn giúp đỡ, cám ơn 2 bạn nhiều.

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ám ơn bạn Tue_NV, mình rất hài lòng đọan code bạn thêm vô cho mình và đã giải quyết được vấn đề. Mình cũng cám ơn bạn Thanh Bình đã gợi ý cho mình, vì mình mới viết lisp để hỗ trợ cho công việc và cũng mới bắt đầu học nên mình sẽ tự viết 1 lisp khác theo ý của bạn Thanh Bình để hiểu rõ thêm vấn đề, nếu có thắc mắc mình sẽ hỏi 2 bạn. Mong 2 bạn giúp đỡ, cám ơn 2 bạn nhiều.

Bạn Tue_NV ơi bạn có thể giải thích cho mình hiểu cái hàm tự tạo rnd và cái biến hệ thống assoc 42 ( biến hệ thống mình có thể tham khảo ở đâu vậy), thank.

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ám ơn bạn Tue_NV, mình rất hài lòng đọan code bạn thêm vô cho mình và đã giải quyết được vấn đề. Mình cũng cám ơn bạn Thanh Bình đã gợi ý cho mình, vì mình mới viết lisp để hỗ trợ cho công việc và cũng mới bắt đầu học nên mình sẽ tự viết 1 lisp khác theo ý của bạn Thanh Bình để hiểu rõ thêm vấn đề, nếu có thắc mắc mình sẽ hỏi 2 bạn. Mong 2 bạn giúp đỡ, cám ơn 2 bạn nhiều.

Bạn Tue_NV ơi bạn có thể giải thích cho mình hiểu cái hàm tự tạo rnd và cái biến hệ thống assoc 42 ( biến hệ thống mình có thể tham khảo ở đâu vậy), thank.

Vấn đề của bạn dđuwọc Tue_NV giải quyết triệt để, cho phép Tue_NV được dừng chủ đề của bạn tại đây. Vì Topic này là "Viết Lisp theo yêu cầu" nên bạn muốn hỏi vấn đề gì thì sang đây hỏi cho thoải mái và bàn luận luôn ở đây nhé :Hỏi về Lisp, xin chỉ giúp

TB : Những vấn đề của bạn có thể tham khảo trong Cuốn Help Developer của CAD.

Chào bạn Chúc bạn luôn vui vẻ

  • 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

trước đây mình thấy 1 số máy dưới thanh coords của cad nó kô hiện lên tọa độ của con trỏ mà chỉ hiển thị tên người dùng. kô biết là làm như thế nào? mình đã thử mà kô được.ai biết chỉ mình với.cảm ơn nha

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
trước đây mình thấy 1 số máy dưới thanh coords của cad nó kô hiện lên tọa độ của con trỏ mà chỉ hiển thị tên người dùng. kô biết là làm như thế nào? mình đã thử mà kô được.ai biết chỉ mình với.cảm ơn nha

Thiết lập tên cho biến Modemacro :

Command: modemacro

 

Enter new value for MODEMACRO, or . for none : CADVIET : gõ CADVIET

Lập tức tên CADVIET hiện dưới thanh coords của cad

  • Vote tăng 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
trước đây mình thấy 1 số máy dưới thanh coords của cad nó kô hiện lên tọa độ của con trỏ mà chỉ hiển thị tên người dùng. kô biết là làm như thế nào? mình đã thử mà kô được.ai biết chỉ mình với.cảm ơn nha

-Bạn gỏ MODEMACRO enter xong gỏ nội dung muốn hiển thị vào là ok.

-Dùng lisp: bạn lưu dòng này vào file lisp cho nó loa tự động.

(setvar "MODEMACRO" "nội dung")

  • Vote tăng 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
trước đây mình thấy 1 số máy dưới thanh coords của cad nó kô hiện lên tọa độ của con trỏ mà chỉ hiển thị tên người dùng. kô biết là làm như thế nào? mình đã thử mà kô được.ai biết chỉ mình với.cảm ơn nha

Bạn thử đánh lệnh MODEMACRO xem sao. Nếu nó ra kết quả là 1 chuỗi tên giống như hiển thị ở góc trái thì bạn thử nhập lại cho nó thành chuỗi rỗng "". Nếu vẫn không được thì bạn xem lại trong file lisp nào đó bạn tự load có dòng gán chuỗi cho biến MODEMACRO không.

  • Vote tăng 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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×