Jump to content
InfoFile
Tác giả: ketxu
Bài viết gốc: 201011
Tên lệnh: 1
gộp giúp em lisp lệnh bật, tắt Layer với

(defun c:1()
(if *n (c:layoff)(c:layon))
(setq *n (not *n))
)

Filename: 201011_1.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201118
Tên lệnh: ha
Lisp chọn tất cả các đối tượng thuộc 1 layer !


Tôi nhớ đã viết cái này 1 lần cho ai đó, nhưng giờ tìm không ra nên đành viết lại cho bạn.

Filename: 201118_ha.lsp
Tác giả: ketxu
Bài viết gốc: 201129
Tên lệnh: ha1
đo khoảng cách bằng chỉ bằng 1 lần rê chuột
Quick Modify.

;Cho phep chon tat ca *LINE va *TEXT chi 1 lan.
;Chu y khi chon doi tuong: so *LINE thang dung nhieu hon so *TEXT la 1 doi tuong.Lay khoang cach bang hieu toa do x
;Neu co line nghieng nen chuyen qua vlax-closetpoint
(defun C:HA1( / ss lstLine lstText z dxf ss->list Compare kc)
(princ "\nChon cac doi tuong *LINE va *TEXT...")
(setq ss (ssget '((0 . "*LINE,*TEXT")))
dxf (lambda(id en)(cdr (assoc id (entget...
>>
Quick Modify.

;Cho phep chon tat ca *LINE va *TEXT chi 1 lan.
;Chu y khi chon doi tuong: so *LINE thang dung nhieu hon so *TEXT la 1 doi tuong.Lay khoang cach bang hieu toa do x
;Neu co line nghieng nen chuyen qua vlax-closetpoint
(defun C:HA1( / ss lstLine lstText z dxf ss->list Compare kc)
(princ "\nChon cac doi tuong *LINE va *TEXT...")
(setq ss (ssget '((0 . "*LINE,*TEXT")))
dxf (lambda(id en)(cdr (assoc id (entget en))))
ss->list (lambda(ss)(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
Laydt (lambda(ss kieu)(vl-remove-if-not '(lambda(x) (wcmatch (dxf 0 x) kieu)) (ss->list ss)))
Compare (lambda(a B)(< (car(dxf 10 a))(car(dxf 10 B))))
lstLine (vl-sort (Laydt ss "*LINE") 'Compare)
lstText (vl-sort (Laydt ss "*TEXT") 'Compare)
)
(cond
((/= (1- (length lstLine)) (length lstText))
(alert "So *LINE va *TEXT khong phu hop.")
(exit))
(T
(setq z 0)
(repeat (length lstText)
(setq kc (- (car (dxf 10 (nth (1+ z) lstLine))) (car (dxf 10 (nth z lstLine)))))
(entmod (subst (cons 1 (rtos kc 2 2)) (assoc 1 (entget (nth z lstText))) (entget (nth z lstText))))
(setq z (1+ z)))
)) )

<<

Filename: 201129_ha1.lsp
Tác giả: ketxu
Bài viết gốc: 126090
Tên lệnh: tkt
Lỗi : Marco này là sao nhỉ...
Á,mình nhận 1 file thế này (đã lược đi r),mở file báo có kèm theo marco -> mình Do not load nhé :D
File Loi

Text không chọn được.
Sửa thì có khá nhiều cách củ chuối để sửa, thậm chí đơn giản là xóa bảng thống kê text của bác giabach bên cạnh đi, thoát ra và vào lại ^^
- Vấn...
>>
Á,mình nhận 1 file thế này (đã lược đi r),mở file báo có kèm theo marco -> mình Do not load nhé :D
File Loi

Text không chọn được.
Sửa thì có khá nhiều cách củ chuối để sửa, thậm chí đơn giản là xóa bảng thống kê text của bác giabach bên cạnh đi, thoát ra và vào lại ^^
- Vấn đề mình chưa bít là marco ở đâu mà nó báo có (kể cả enable,nhấn Alt F11 k thấy đoạn mã nào)
- Vấn đề thứ 2 là bảng thống kê có ảnh hưởng thế nào ở đây ? Bản vẽ nguyên gốc có rất nhiều đối tượng,n cũng chỉ cần xóa thằng này là vấn đề được giải quyết ??
Lisp tkt của bác giabach và bác TueNV (e nhớ thế) update thì đây ạ

<<

Filename: 126090_tkt.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201218
Tên lệnh: ha
Nhờ viết lisp chọn nhanh text cùng nội dung

Lisp chọn text thuộc tập số nguyên Z.

Filename: 201218_ha.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201394
Tên lệnh: lv
vẽ line có đoạn cong để vòng qua line khác

Hàm while của bác không có đặt điều kiện, nên nó cứ lặp cho đến cả khi bác enter. Mà khi đã enter thì bị lỗi => không undo 1 phát được.
Trong trường hợp bị lỗi, muốn u 1 phát thì phải thêm bước: undo => end, sau đó mới u được.
Tạm sửa theo code của bác thì như vầy chắc ổn.

Filename: 201394_lv.lsp
Tác giả: mathan
Bài viết gốc: 201445
Tên lệnh: kb ccd
Tìm lisp xuất cao độ ra text có sẵn

Hơi dài dòng nhưng mong vừa ý bạn
Code lisp free từ CADViet.com mình chỉ sửa lại ít thôi

;;;-----------------------------------------
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2 (ssadd) i 0)
(repeat (sslength ss1)
(setq e (ssname ss1 i) i (1+ i))
(if (CheckObj e MyType) (ssadd e ss2) )
>>

Hơi dài dòng nhưng mong vừa ý bạn
Code lisp free từ CADViet.com mình chỉ sửa lại ít thôi

;;;-----------------------------------------
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2 (ssadd) i 0)
(repeat (sslength ss1)
(setq e (ssname ss1 i) i (1+ i))
(if (CheckObj e MyType) (ssadd e ss2) )
)
(eval ss2)
)
;;;-----------------------------------------
(defun SelData( / OK)
(setq OK nil)
(while (not OK)
(prompt "\tChon text: ")
(setq ss (FilObj (ssget) "TEXT"))
(if (> (sslength ss) 0) (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
)
;;;-----------------------------------------
(defun WriteRes1(kq / OK e chen data txt)
(setq OK nil)
(while (not OK)
(if (null cheno) (setq cheno ""))
(setq chen (getstring (strcat "Text chen them vao phia truoc: an 1 de nhan text( " cheno " ) hoac nhap text: ")))
(if (= chen "1") (setq chen cheno) (setq cheno chen))

(setq e (car (entsel "\nChon text ghi ket qua cao do: ")))
(if (CheckObj e "TEXT") (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
(setq txt (strcat chen (rtos kq 2 tp)))
(entmod (subst (cons 1 txt) (assoc 1 (setq data (entget e))) data))
(princ)
)
;;;-----------------------------------------
(defun C:kb( / new1 )
(if (null newo) (setq newo 1000.0))
(setq new1 (getreal (strcat "\nNhap ty le ban ve 1/ <" (rtos newo) ">:ok or: ")))
(if (null new1) (setq new1 newo) (setq newo new1))
(setq tyle newo)
(setq dgoc (getpoint "\nChon diem goc cao do: "))
(setq cdg (getreal "\nNhap vao cao do goc: "))
(setq tp (getint "\nNhap vao so chu so thap phan: "))
)
;;;;;;;;;;---------------------------------
(defun C:ccd( / )
(setq i 1 n 100)
(while (< i n)
(setq dchon (getpoint "\nChon diem can tinh cao do: "))
(setq cddc (- cdg (* (/ 1 tyle) (- (cadr dgoc) (cadr dchon) ))) )
(WriteRes1 cddc)
(setq i (+ i 1))
)
(princ)
)

Lệnh KB để khai báo điểm gốc
Và CCD để chèn cao độ theo điểm gốc đó bạn nhé
----------
Chia sẻ để có được nhiều hơn những gì mình muốn
<<

Filename: 201445_kb_ccd.lsp
Tác giả: mathan
Bài viết gốc: 201510
Tên lệnh: kb ccd
xin lisp ghi cao độ


Trên diễn đàn hẳn có rất nhiều LISP na ná như bạn mong muốn
Ví dụ như LISP đánh cốt tự động của bác Nguyen Hoanh http://www.cadviet.c...p?showtopic=152
Hoặc bạn có thể dùng thử đồ chơi của mình

;;; Free lisp code from CADViet.com
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2...
>>

Trên diễn đàn hẳn có rất nhiều LISP na ná như bạn mong muốn
Ví dụ như LISP đánh cốt tự động của bác Nguyen Hoanh http://www.cadviet.c...p?showtopic=152
Hoặc bạn có thể dùng thử đồ chơi của mình

;;; Free lisp code from CADViet.com
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2 (ssadd) i 0)
(repeat (sslength ss1)
(setq e (ssname ss1 i) i (1+ i))
(if (CheckObj e MyType) (ssadd e ss2) )
)
(eval ss2)
)
;;;-----------------------------------------
(defun SelData( / OK)
(setq OK nil)
(while (not OK)
(prompt "\tChon text: ")
(setq ss (FilObj (ssget) "TEXT"))
(if (> (sslength ss) 0) (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
)
;;;-----------------------------------------
(defun WriteRes1(kq / OK e chen data txt)
(setq OK nil)
(while (not OK)
(if (null cheno) (setq cheno ""))
(setq chen (getstring (strcat "\nText chen them vao phia truoc: an 1 de nhan text( " cheno " ) hoac nhap text: "))) ;; Dung viet them ghi chu cho text cao do (co the bo qua)
(if (= chen "1") (setq chen cheno) (setq cheno chen))
(setq e (car (entsel "\nChon text ghi ket qua cao do: ")))
(if (CheckObj e "TEXT") (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
(setq txt (strcat chen (rtos kq 2 tp)))
(entmod (subst (cons 1 txt) (assoc 1 (setq data (entget e))) data))
(princ)
)
;;;-----------------------------------------
(defun C:kb( / new1 )
(if (null newo) (setq newo 1000.0))
(setq new1 (getreal (strcat "\nNhap ty le ban ve 1/ <" (rtos newo) ">:ok or: ")))
(if (null new1) (setq new1 newo) (setq newo new1))
(setq tyle newo)
(setq dgoc (getpoint "\nChon diem goc cao do: "))
(setq cdg (getreal "\nNhap vao cao do goc: "))
(setq tp (getint "\nNhap vao so chu so thap phan: "))
)
;;;;;;;;;;---------------------------------
(defun C:ccd( / )
(setq i 1 n 100)
(while (< i n)
(setq dchon (getpoint "\nChon diem can tinh cao do: "))
(setq cddc (- cdg (* (/ 1 tyle) (- (cadr dgoc) (cadr dchon) ))) )
;(WriteRes1 cddc) ;; De dien vao text cac text co san
(command "TEXT" dchon "" "" (rtos cddc 2 tp)) ;; De viet them text moi Ban dung 1 trong 2 truong hop nhe
(setq i (+ i 1))
)
(princ)
)



Bạn dùng lệnh KB để chọn điểm gốc và các thông số
Và lệnh CCD để chèn cao độ vào các vị trí mong muốn
Trong LISP có 2 options ghi vào text có sẵn hoặc chèn text bạn nhé
Dùng trường hợp nào thì bạn cho dấu ";" vào đầu dòng còn lại nhé và bỏ dấu ";" của dòng kia đi
Lưu ý: Nếu chèn text, bạn hãy tạo text style có sẵn chiều cao chữ như bạn muốn thì nó mới chạy ngon được bạn nhé
Thân,
<<

Filename: 201510_kb_ccd.lsp
Tác giả: ketxu
Bài viết gốc: 201543
Tên lệnh: test
Nhờ viết lisp xóa tất cả các đối tượng được chọn trừ số nguyên
Ô lại là ... => Đã từng viết yêu cầu
Sai quy tắc đặt tên + Đã từng viết yêu cầu = Vi phạm => Move


(defun c:test()(command "erase" (ssget (list (cons -4 "<NOT") (cons 1 "~**")(cons -4 "NOT>"))) ""))

Filename: 201543_test.lsp
Tác giả: whatcholingon
Bài viết gốc: 201571
Tên lệnh: td1
Trích tọa độ trong cad

Để ghi tọa độ ra màn hình bạn dùng LSP này (Hình như của Mr Thai)

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12225
;GHI TOA DO CAC DIEM VA THONG KE THANH BANG
----------------------------------------------
(defun C:td1 (/ diem PT1 PT2 PT3 tapx tapy
x y xx yy h n di kc
C PT PTX PTY PTD PTC N
p1 p2 p3 p4 p11 p22 p33 L1 L2 L11 L22)
>>

Để ghi tọa độ ra màn hình bạn dùng LSP này (Hình như của Mr Thai)

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=12225
;GHI TOA DO CAC DIEM VA THONG KE THANH BANG
----------------------------------------------
(defun C:td1 (/ diem PT1 PT2 PT3 tapx tapy
x y xx yy h n di kc
C PT PTX PTY PTD PTC N
p1 p2 p3 p4 p11 p22 p33 L1 L2 L11 L22)
(setvar "cmdecho" 0 )
(command "Undo" "Begin")
(setq om (getvar "osmode"))
(setq tapx '()
tapy '()
stt '()
k 0
h (getreal "\nnhap chieu cao chu:"))

(while
(setq diem (getpoint "\nchon cac vi tri co toa do can ghi:"))
(progn
(setq PT1 (list(+ (* 3 h) (car diem))(+ (* 3 h) (cadr diem)))
PT2 (list (car PT1) (- (cadr PT1)(+ 1 h) ) )
x (rtos(car diem) 2 4)
y (rtos (cadr diem) 2 4)
tapx (append tapx (list x))
tapy (append tapy (list y))
;;;;;; k (+ 1 k)
;;;;;N (strcat "N" (rtos k 2 0))
;;;; stt (append stt (list N))
);setq
(setvar "osmode" 0)
(command "text" "j" "BL" PT1 h 0 x)
(setq TB (textbox (entget(entlast)))
LC (car TB)
RC (cadr TB)
di (distance LC RC)
PT3 (polar PT1 0 (+ di h))
;;;;;;C (polar PT3 0 (* 1.5 h))
);setq
(command "text" PT2 h 0 y
"pline" diem PT1 PT3 ""
;;;;;"circle" (polar PT3 0 (* 1.5 h)) (* 1.5 h)
;;;;;"text" "m" (polar PT3 0 (* 1.5 h)) h 0 N
)

(setvar "osmode" om)
);progn
);dong while

;tao bang thong ke
(setq kc (* 2 di)
PT (getpoint"\nvi tri dat bang :")
PTC (list (+ (* 2 kc) di (car PT)) (cadr PT))
p1 (list (car PT) (+ (cadr PT)(* 2 h)))
p2 (list (car PTC) (+ (cadr PTC)(* 2 h)))
p3 (list (car p1) (+ (cadr p1)(* 2 h)))
p4 (list (car p2) (+ (cadr p2)(* 2 h)))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (car PTD)) (cadr PTD))
PTY (list (+ kc (car PTX)) (cadr PTX))
p11 (list (+ (/ di 2) (car p1)) (+ h (cadr p1)))
p22 (list (+ di (/ di 2) (car p11)) (cadr p11))
p33 (list (+ kc (car p22)) (cadr p22))
L1 (list (+ di (car p3))(cadr p3))
L2 (list (+ kc (car L1))(cadr L1))
n (length tapx)
k 0
);setq
(setvar "osmode" 0)
(command "line" p1 p2 ""
"text" "j" "m" p11 h 0 "STT"
"text" "j" "m" p22 h 0 "T&#228;a &#174;&#233; X"
"text" "j" "m" p33 h 0 "T&#228;a &#174;&#233; Y"
"line" p3 p4 "")
(while (< k n)
(setq xx (nth k tapx)
yy (nth k tapy)
tstt(nth k stt))
(command "text" "j" "m" PTD h 0 tstt
"text" "j" "m" PTX h 0 xx
"text" "j" "m" PTY h 0 yy
"line" PT PTC "")
(setq PT (list (car PT) (- (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) di (car PT)) (cadr PT))
PTD (list (+ (/ di 2) (car PT)) (+ h (cadr PT)))
PTX (list (+ di (/ di 2) (car PTD)) (cadr PTD))
PTY (list (+ kc (car PTX)) (cadr PTX))
k (+ 1 k));setq
);while
(if (= k n)
(setq PT (list (car PT) (+ (cadr PT)(* 2 h)))
PTC (list (+ (* 2 kc) di (car PT)) (cadr PT))
L11 (list (+ di (car PT))(cadr PT))
L22 (list (+ kc (car L11))(cadr L11))
);setq
);if
(command "line" p3 PT ""
"line" p4 PTC ""
"line" L1 L11 ""
"line" L2 L22 "")
(setvar "osmode" om )
(setvar "cmdecho" 1)
(prompt"\nxong\n")
(command "Undo" "End")
(princ)
);DONG toado

làm cách nào để đo được tọa độ x/y của một đường thẳng. minh muốn xuất các tọa độ để lập trình lệnh CNCcho các bước chạy dao
Chưa hiểu ý của bạn.
- Nếu đo kích thước chiều dài đoạn thẳng thì được. (?)
- Lấy tọa độ các điểm đầu cuối của đoạn thẳng cũng được (?)
<<

Filename: 201571_td1.lsp
Tác giả: mathan
Bài viết gốc: 201503
Tên lệnh: ha
Lisp chọn đối tượng theo màu

Lisp như thế trên diễn đàn có rồi bạn ah
Ví dụ như bài của bác DOAN VAN HA

(defun c:ha () (setq ss (ssget (list (assoc 62 (entget (car (entsel "\nDoi tuong mau :"))))))))

Còn nếu bạn muốn nhập màu (chứ không phải chọn đối tượng mẫu)
Bạn dùng thử

(defun c:mau ( / chonmau ss )
(setq chonmau (getint "\nChon mau doi tuong (so nguyen): "))
(setq ss (ssget (list...
>>

Lisp như thế trên diễn đàn có rồi bạn ah
Ví dụ như bài của bác DOAN VAN HA

(defun c:ha () (setq ss (ssget (list (assoc 62 (entget (car (entsel "\nDoi tuong mau :"))))))))

Còn nếu bạn muốn nhập màu (chứ không phải chọn đối tượng mẫu)
Bạn dùng thử

(defun c:mau ( / chonmau ss )
(setq chonmau (getint "\nChon mau doi tuong (so nguyen): "))
(setq ss (ssget (list (cons 62 chonmau))))
)

Tất nhiêu không bao gồm màu "BY LAYER" như bạn nói
<<

Filename: 201503_ha.lsp
Tác giả: ketxu
Bài viết gốc: 108783
Tên lệnh: 0
nhờ các anh chị viết dùm em lisp chọn layer 0
Bạn thử xem sao nhé ^^

Filename: 108783_0.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201591
Tên lệnh: ha
vấn đề về lệnh tắt trong cad

Lisp mở file Word để xem.

Filename: 201591_ha.lsp
Tác giả: mathan
Bài viết gốc: 201615
Tên lệnh: kb ccd
xin lisp ghi cao độ

Mình đã sửa lại một chút cho thuận tiện hơn
Bạn dùng thử nhé

;;;-----Free lisp code from CADViet.com - Edited by Mathan - From VECC
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2 (ssadd) i 0)
(repeat (sslength ss1)
(setq e (ssname ss1 i) i (1+ i))
(if (CheckObj e MyType) (ssadd e ss2) )
>>

Mình đã sửa lại một chút cho thuận tiện hơn
Bạn dùng thử nhé

;;;-----Free lisp code from CADViet.com - Edited by Mathan - From VECC
(defun CheckObj(e MyType) (equal (cdr (assoc 0 (entget e))) MyType))
;;;-----------------------------------------
(defun FilObj(ss1 MyType / ss2 i e)
(setq ss2 (ssadd) i 0)
(repeat (sslength ss1)
(setq e (ssname ss1 i) i (1+ i))
(if (CheckObj e MyType) (ssadd e ss2) )
)
(eval ss2)
)
;;;-----------------------------------------
(defun SelData( / OK)
(setq OK nil)
(while (not OK)
(prompt "\tChon text: ")
(setq ss (FilObj (ssget) "TEXT"))
(if (> (sslength ss) 0) (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
)
;;;-----------------------------------------
(defun WriteRes1(kq / OK e chen data txt)
(setq OK nil)
(while (not OK)
(if (null cheno) (setq cheno ""))
(setq chen (getstring (strcat "Text chen them vao phia truoc: an 1 de nhan text( " cheno " ) hoac nhap text: ")))
(if (= chen "1") (setq chen cheno) (setq cheno chen))
(setq e (car (entsel "\nChon text ghi ket qua cao do: ")))
(if (CheckObj e "TEXT") (setq OK T) (princ "\nDoi tuong chon khong phai text"))
)
(setq txt (strcat chen (rtos kq 2 tp)))
(entmod (subst (cons 1 txt) (assoc 1 (setq data (entget e))) data))
(princ)
)
;;;-----------------------------------------
(defun C:kb( / new1 )
(if (null newo) (setq newo 1000.0))
(setq new1 (getreal (strcat "\nNhap ty le ban ve 1/ <" (rtos newo) ">:ok or: ")))
(if (null new1) (setq new1 newo) (setq newo new1))
(setq tyle newo)
(setq tp (getint "\nNhap vao so chu so thap phan: "))
(setq phuongan (getint "\nNhap vao goc phuong an chen vao text co san (1) hoac tao text moi (2): "))
(if (= phuongan 2)
(progn
(setq caochu (getreal "\nNhap vao chieu cao chu: "))
(setq goctext (getreal "\nNhap vao goc ra chu: "))
)
)
)
;;;;;;;;;;---------------------------------
(defun C:ccd( / )
(setq dgoc (getpoint "\nChon diem goc cao do: "))
(setq cdg (getreal "\nNhap vao cao do goc: "))
(setq i 1 n 1000)
(while (< i n)
(setq dchon (getpoint "\nChon diem can tinh cao do: "))
(setq cddc (- cdg (* (/ 1 tyle) (- (cadr dgoc) (cadr dchon) ))) )
(if (= phuongan 1) (WriteRes1 cddc) )
(if (= phuongan 2) (command "TEXT" dchon caochu goctext (rtos cddc 2 tp)))
(setq i (+ i 1))
)
(princ)
)

<<

Filename: 201615_kb_ccd.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201591
Tên lệnh: ha1
vấn đề về lệnh tắt trong cad

Lisp mở file Word để xem.
Cách thứ 1:

Filename: 201591_ha1.lsp
Tác giả: gia_bach
Bài viết gốc: 77674
Tên lệnh: mat
Lisp MATTEXT bị lỗi ???

Lisp Match Text : đối tượng đích sẽ có giá trị (hay chiều dài) của đối tượng nguồn
- đối tượng nguồn : TEXT, MTEXT, DIMENSION, MULTILEADER, ATTDEF, ATTRIB, LINE, PLINE, ARC, CIRCLE, ELLIPSE
+ với đối tượng TEXT, MTEXT, DIMENSION, MULTILEADER, ATTDEF, ATTRIB : lấy giá trị Text của đối tượng nguồn
+ với đối tượng LINE, PLINE, ARC, CIRCLE, ELLIPSE : lấy chiều dài của đối tượng nguồn (làm...
>>

Lisp Match Text : đối tượng đích sẽ có giá trị (hay chiều dài) của đối tượng nguồn
- đối tượng nguồn : TEXT, MTEXT, DIMENSION, MULTILEADER, ATTDEF, ATTRIB, LINE, PLINE, ARC, CIRCLE, ELLIPSE
+ với đối tượng TEXT, MTEXT, DIMENSION, MULTILEADER, ATTDEF, ATTRIB : lấy giá trị Text của đối tượng nguồn
+ với đối tượng LINE, PLINE, ARC, CIRCLE, ELLIPSE : lấy chiều dài của đối tượng nguồn (làm tròn đến hàng đơn vị)

- đối tượng đích : TEXT, MTEXT, DIMENSION, MULTILEADER, ATTDEF

Chú ý : khi chọn đối tuợng nguồn là DIMENSION hay ATTRIB nếu muốn lấy giá trị Text bạn phải pick vào Text đó, t/hợp bạn pick vào đuờng gióng của DIMENSION, Lisp sẽ lấy chiều dài của đuờng gióng đó.

<<

Filename: 77674_mat.lsp
Tác giả: Doan Van Ha
Bài viết gốc: 201882
Tên lệnh: tt c
hỏi cách lưu lệnh tắt
Chắc kiểu như thế này chăng?

Chú ý: không nên đặt tên lệnh tắt trùng tên lệnh tắt khác của cad. Nếu cứ muốn như vậy thì lệnh tắt bị trùng phải được đặt bằng tên khác nữa...

Filename: 201882_tt_c.lsp
Tác giả: ketxu
Bài viết gốc: 201895
Tên lệnh: xrefnopath
Chuyển xref thành no path

(defun c:xrefnopath (/ xrefName ) ;@ketxu 4/6
(vl-load-com)
(vlax-for x (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
(cond ((and
(vlax-property-available-p x 'isxref)
(eq (vla-get-IsXref x) :vlax-true)
)
(vla-put-path
x
(strcat
(vl-filename-base (setq xrefName (vla-get-Path x)))
(vl-filename-extension xrefName)
)
)
(vla-reload x)
)
)
>>

(defun c:xrefnopath (/ xrefName ) ;@ketxu 4/6
(vl-load-com)
(vlax-for x (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
(cond ((and
(vlax-property-available-p x 'isxref)
(eq (vla-get-IsXref x) :vlax-true)
)
(vla-put-path
x
(strcat
(vl-filename-base (setq xrefName (vla-get-Path x)))
(vl-filename-extension xrefName)
)
)
(vla-reload x)
)
)
)
)

<<

Filename: 201895_xrefnopath.lsp
Tác giả: Tue_NV
Bài viết gốc: 83413
Tên lệnh: fr
Viết lisp theo yêu cầu [phần 2]

Cái này bạn Nhập Bán kính bo có 1 lần rồi sử dụng cho các lần sau mà.
Nếu bạn thích thì đây :

Filename: 83413_fr.lsp
Tác giả: hoa35ktxd
Bài viết gốc: 91691
Tên lệnh: changealltext
Viết lisp theo yêu cầu [phần 2]

Đây là Lisp code

Filename: 91691_changealltext.lsp

Trang 92/304

92