namtrantt206xd
-
Số lượng nội dung
36 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi namtrantt206xd
-
-
Thử sử dụng lsp này http://www.cadviet.com/forum/topic/157561-yeu-cau-nho-sua-lisp-udt/?p=391571
Chú ý lệnh TLDIA.
@Danh Cong: Biến DIMZIN.
Cảm ơn bác nhé. Nhưng sao em tải Lisp của bác về không dùng được nhỉ?
-
Không ai phản hồi nhỉ <_< !!!
Em có File CAD này bị lỗi như sau:
- Bên Layout có 3 khung nhìn 1,2,3
- Khi chọn lệnh in, Preview tại khung 2 và 3 thì thấy kết quả tại khung 2 và 3. Nhưng Plot in ra giấy thì lại đều là kết quả khung nhìn số 1.http://www.cadviet.com/upfiles/6/89361_khung_ten.dwg
File CAD http://www.cadviet.com/upfiles/6/89361_nhap.dwg
Bác có sửa được lỗi này không?
-
Đọc đến cuối đoạn lisp của bác mà em tí thì sặc nước :D :D
Bác copy đoạn lisp ở đâu thêm vào thế này ko chạy được đâu.
Đây, gửi lại lisp cho bác.
Cảm ơn bạn nhiều nhé. tại không hiểu bản chất nên mới copy dán lung tung xem nó có được không.
Lisp bạn sửa giúp mình được rồi nhưng nhờ bạn sửa thêm cho 1 tí nữa là:
1. sau khi chọn Text là gán kết quả luôn không cần phải ấn enter thêm.
2. Text luôn trả về 2 số sau dấu phẩy. ví dụ kết quả là 0.80 thay vì như hiện tại là 0.8
Thanks bạn nhiều nhé!
- 1
- 1
-
Thay (getvar "PERIMETER") bằng (atof (rtos (getvar "PERIMETER") 2 2))
Còn đổi màu chữ thì có câu lệnh nào chèn text đâu mà đổi ?
Thanks bác nhiều nhé. Nhân tiện bác sửa giúp em cách đổi màu TEXT trong đoạn code sau luôn:
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/3778-lisp-tinh-tong-chieu-dai-cac-line-hay-pline/
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq tot_len (+ tot_len mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
(princ "\nCADViet.com © 2007")
(setq tot_len 0.0)
(setq ss (ssget))
(if (null ss)
(exit)
)
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq tot_len (+ tot_len (atof (rtos (getvar "PERIMETER") 2 2))))
(ssdel e_name ss)
)
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))
)
)
(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
(setq te (entget(car(entsel"\n Chon Text de gan ket qua :"))) (setq elst (entget en))
(setq elst (subst (cons 1 (strcat " " (rtos dtl 2 2))) (assoc 1 elst) elst))
(setq elst (append elst '((62 . 6))))
(prin1 elst)
(entmod elst)
; (print)
; (prompt (strcat "\nTotal area : " (rtos dTy_le 2 4)))
; (print)
; (setq pt2 (getpoint "\nPoint to write: "))
; (command "text" pt2 "" "0" (rtos dtl 2 2))
);defun
-
Em có download trên diễn đàn lisp tính tổng các đường Line và Polyline:http://www.cadviet.com/upfiles/6/89361_tg.lsp
Em muốn sửa Lisp này như sau:
1. Làm tròn 2 số sau dấu phẩy của các đường Line và Polyline trước khi cộng tổng lại
2. Đổi text sang màu 6
Nhờ các bác giúp em với.
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/3778-lisp-tinh-tong-chieu-dai-cac-line-hay-pline/
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq tot_len (+ tot_len mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:tg (/ tot_len ss e_name e_record e_type)
(princ "\nCADViet.com © 2007")
(setq tot_len 0.0)
(setq ss (ssget))
(if (null ss)
(exit)
)
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq tot_len (+ tot_len (getvar "PERIMETER")))
(ssdel e_name ss)
)
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))
)
)
(prompt (strcat "\nTotal length is: " (rtos tot_len 2 2)))
(princ)
)
(princ "\ntg - free lisp from www.cadviet.com")
(princ)- 1
-
Bạn thanhduan ơi, sao mình không tải được nhỉ?
-
-
Em hiểu rồi, như thế này là lisp đang đo khoảng cách 2 điểm như lệnh DAL nhưng em muốn lisp đó khoảng cách như lệnh DLI thì bác sử giúp em được không?
-
Đúng theo ý em rồi bác ah? nhưng mà không hiểu sao kết quả ghi khoảng cách ra lại không đúng bác nhỉ?
-
Có ai giúp em với?
-
Bác TaiNguyen79 sửa giúp em lisp khoảng cách với? như lisp đo cao độ nhưng mà giờ là đo khoảng cách.
-
Sửa cho bạn đây :
(defun C:f2( / cdd L te p1 p2)
(setq cdd (atof (cdr(assoc 1 (entget(car(entsel "\n Pick chon Text cao do dau :")))))))
(setq p1 (getpoint "\n Chon diem da biet cao do:"))
(while (setq p2 (getpoint p1 "\n Chon diem can tim cao do :"))
(setq L (+ cdd (- (cadr p2) (cadr p1))))
(setq te (entget(car(entsel"\n Chon Text de gan ket qua :")))
te (subst (cons 1 (rtos L 2 2)) (assoc 1 te) te))
(entmod te))(princ))
;---
(defun C:4( / L te p1 p2)
(while (and (setq p1 (getpoint "\n Chon diem thu nhat :"))(setq p2 (getpoint p1 "\n Chon diem thu hai :")))
(setq L (distance p1 p2))
(setq te (entget(car(entsel"\n Chon Text de gan ket qua :"))) te (subst (cons 1 (rtos L 2 2)) (assoc 1 te) te))
(entmod te))(princ))
Bác sửa lisp cao độ này rất hay, nhưng em muốn nhờ bác sửa lisp đo khoảng cách ngắn gọn hơn 1 bước nữa được không?
Nghĩa là: gõ lisp\chọn điểm gốc\chọn điểm còn lại\chọn text (1 điểm gốc tính khoảng cách cho tất cả các điểm còn lại giống như lisp cao độ)
Thanks bác nhiều nha!
-
Lisp tính diện tích
trong AutoLisp
Không bít lisp này đã có pác nào up lên chưa, em up lên thử. Các pác thích tính diện tích hình nào chỉ cần đánh "a2" rùi tích bất kỳ vào chỗ nào trong hình, lisp sẽ tự bao kín hình và hiện số. Lần đầu em up nên ko bít có thành công ko nữa...
http://www.cadviet.com/upfiles/Tinh_dien_tich_1.zip
Similar topics from web:Lisp tính diện tích một hình khép kín [Lưu Trữ]
Video HDSD lisp vẽ và tính ô lưới trong san nền
Chia sẻ Bộ Lisp rất hay: ”Kho báu của Minh”
Autolisp-menu HTKT-Update 06-04-2008
ANDDesign Đo diện tích bằng Lisp
phân lớp đắp trong san nền và đường giao thông
Giá như lisp này tính xong ghi luôn được text giá trị diện tích sang bên cạnh thì hay quá
-
Ý 1 : Quick code :
(defun c:test(/ i adoc daolst )(vl-load-com) (defun daolst (lst p / lst1 i a <img src='http://www.cadviet.com/forum/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' /> (setq p (car (vl-sort lst '(lambda(x y)(< (distance p x)(distance p y)))))) (cond ((setq a (member p lst)) (setq i -1) (setq b (append a (reverse(repeat (vl-position p lst) (setq lst1 (cons (nth (setq i (1+ i)) lst) lst1)) )) ))) ) b ) (command "undo" "be") (setq i -1 a (acet-geom-vertex-list (car (entsel "\nChon Pline :"))) a (daolst a (getpoint "\nDiem bat dau danh so :"))) (mapcar '(lambda(x y)(or (eval x) (set x y)) (set x (cond ((getreal (strcat "\nNhap " (vl-princ-to-string x) ": <" (rtos (eval x) 2 2) ">"))) ((eval x)) ) )) '(1st inc h)'(1 1 1)) (mapcar '(lambda(x) (vla-addtext (cond (adoc) ((setq adoc (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))) ) (rtos (+ 1st (* (setq i (1+ i)) inc)) 2 0) (vlax-3d-point x) h ) ) (if (wcmatch (getstring "\nGiu nguyen chieu ? <y> ") ",[yY]") a (reverse a) ) )(command "undo" "en") )
- Ý 2 của bạn k có cơ sở, vì mình tạo Dtext chứ k tạo Mtext, và mình tạo theo style hiện hành
Trong lisp này có daolst là gì thế bác nhỉ? vì khi dùng lisp này thì cad báo là error: no function definition: DAOLST? Bác có cách nào sửa được không?
-
lisp này dùng chán thế nhỉ? Bác nào có lisp nào mà mình tick các số bên cad xong xuất sang excel theo đúng lần lượt thứ tự các số tick không, chứ lisp này mình tick theo thứ tự mà sang excel nó nhảy loạn hết lên, không theo thứ tự gì cả.
-
không có ai giúp được em sửa lisp kia sao? mọi người giúp em với?
-
Em cảm ơn Bác nhiều nhé, nhưng bác có thể sửa giúp em để cho khi mình chọn đường polyline ở đâu thì text hiện ra ở đó được không? và sửa lại sao cho lisp có thể đánh bắt đầu từ điểm mình pick.
Thanks!
e
K có file miêu tả => Chịu
em vừa up nhưng chưa được.http://www.cadviet.com/upfiles/3/89361_drawing1.dwg
-
K có file miêu tả => Chịu
em mô tả đây bác ah, bác cố gắng giúp em.
-
Quick code. Lần sau bạn nhớ chú ý cách đặt vấn đề và nội quy box này :
(defun c:test(/ i adoc)(vl-load-com)(command "undo" "be") (setq i -1 a (acet-geom-vertex-list (car (entsel "\nChon Pline :")))) (mapcar '(lambda(x y)(or (eval x) (set x y)) (set x (cond ((getreal (strcat "\nNhap " (vl-princ-to-string x) ": <" (rtos (eval x) 2 2) ">"))) ((eval x)) ) )) '(1st inc h)'(1 1 1)) (mapcar '(lambda(x) (vla-addtext (cond (adoc) ((setq adoc (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))) ) (rtos (+ 1st (* (setq i (1+ i)) inc)) 2 0) (vlax-3d-point x) h ) ) (if (wcmatch (getstring "\nGiu nguyen chieu ? <y> ") ",[yY]") a (reverse a) ) )(command "undo" "en") )
Em cảm ơn Bác nhiều nhé, nhưng bác có thể sửa giúp em để cho khi mình chọn đường polyline ở đâu thì text hiện ra ở đó được không? và sửa lại sao cho lisp có thể đánh bắt đầu từ điểm mình pick.
Thanks!
-
Bạn post bản vẽ lên và thể hiện y/c trên bản vẽ. Nếu chiều nay không ai viết thì tôi sẽ giúp bạn.
ví dụ em có 1 đường pollyline, có 10 điểm chẳng hạn, từ điểm 1 đến điểm 10. giờ em muốn có lisp kiểu như thế này anh ah:
gõ lệnh\ pick vào đường polyline\ chọn điểm bắt đầu đánh số\ chọn số đầu tiên\ chọn bước nhảy.
Bác hiểu ý em không ạ? ví dụ em muốn đánh số cho 10 điểm của đường polyline là từ 1 đến 10, em gõ lệnh, pick vào được polyline\ chọn điểm đầu đường polyline\ nhập 1\ bước nhảy 1. kiểu như thế đấy.
Mong bác giúp được em.hi
-
Em đã tìm rồi mà khộng thấy, có lisp copy tăng dần nhưng không phải lisp em cần, ý em là giờ em có 1 đường polyline, em muốn đánh số thứ tự cho các điểm trên đường polyline, chọn được điểm bắt đầu và số bắt đầu ghi. Bác nào có thể giúp em voi?
-
Tìm trên 4rm này đã có nhiều rồi đó bạn ơi.
Em tìm mãi mà không thấy có, ai biết link không cho em xin vơi?
-
Các bác cho em hỏi: Có ai có lisp mà đánh số thứ tự tăng dần hoặ giảm dần của các điểm trên đường polyline không?EM đang rất cần?
Thanks
-
Vậy ah? thế thì dành nhờ bác HNG cho câu trả lời yh!
File cad này của mình copy sang các máy khác đều báo lỗi như thê, vẫn mở bình thường nhưng không thể copy được!
Nhờ Các Bác Sửa Giúp Em Lisp Này Với
trong AutoLisp
Đã đăng · Trả lời báo cáo
Quá tuyệt vời. Đúng như mình muốn. Cảm ơn bạn rất nhiều nhé!