laivanyen
-
Số lượng nội dung
38 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi laivanyen
-
-
10 giờ trước, Botot đã nói:Cái này ko cần lisp, dùng bảng properties quay text 90 độ là xong.
Dùng lệnh dimedit hoặc bảng properties được nhưng vấn đề em có nhiều dim và dùng cho nhiều trường hợp. Nếu làm thủ công thì không được hiệu quả lắm anh ạ
-
Nhờ anh chị viết giúp em xoay text hoặc có thể điều chỉnh trong dimstyle được như bản vẽ em đính kèm với ạ
-
Vào lúc 31/5/2015 tại 10:09, cunconlangthang1088 đã nói:các bác ơi em load lisp tmp ở phía trên toàn báo lỗi ; error: syntax error?
Anh chị nào sửa giúp lỗi này được không ạ !
-
Vào lúc 24/4/2019 tại 20:49, CadExTools đã nói:Ko cùng toạ độ thì dùng chế độ in Extents khi in thôi
anh có lisp in extents ạ. Hay lệnh trong autocad cad, xin anh chỉ dẫn giúp em ạ
-
Vào lúc 21/4/2019 tại 20:07, tien2005 đã nói:Đây nè Bạn, theo đúng yêu cầu. Hết
;------------------------------------------------------------------------------------------------------------------------- ; ==============>> GT: TINH SL DAI VA GHI VAO DIM <<================ ;------------------------------------------------------------------------------------------------------------------------- (defun C:gt (/ ctc ss) (or *ctc* (setq *ctc* 200)) (initget 6) (setq ctc (getint (strcat "\nNh\U+1EADp b\U+01B0\U+1EDBc th\U+00E9p < " (itoa *ctc*) ">:" ) ;_ end of strcat ) ;_ end of getint ) ;_ end of setq (if ctc (setq *ctc* ctc) ) ;_ end of if (if (setq ss (ssget "_:L" (list (cons 0 "DIMENSION")))) (progn (command "_.undo" "_begin") (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (vla-put-TextOverride (vlax-ename->vla-object ent) (strcat "<>\\X" ;;; (itoa (+ (fix (/ (cdr (assoc 42 (entget ent))) *ctc*)) 1)) (itoa (+ (fix (/ (- (cdr (assoc 42 (entget ent)))200) *ctc*)) 1)) "%%c10A" (itoa *ctc*) ) ;_ end of strcat ) ;_ end of vla-put-TextOverride ) ;_ end of foreach (command "_.undo" "_end") (princ) ) ;_ end of progn ) ;_ end of if ) ;_ end of defun (defun C:cl (/ num ss) (if (setq ss (ssget "_:L")) (progn (command "_.undo" "_begin") (or *num* (setq *num* 15)) (initget 4) (setq num (getint (strcat "\nNhap color <" (itoa *num*) ">:"))) (while (not (if num (<= num 256) T ) ;_ end of if ) ;_ end of not (princ "\nGia tri <=256.") (setq num (getint (strcat "\nNhap color <" (itoa *num*) ">:"))) ) ;_ end of while (if num (setq *num* num) ) ;_ end of if (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (vla-put-Color (vlax-ename->vla-object ent) *num*) ) ;_ end of foreach (command "_.undo" "_end") (princ) ) ;_ end of progn ) ;_ end of if ) ;_ end of defun
Em không muốn xuống dòng mà để ngang ở trên và sửa lại ví dụ 8000=40x200 hoặc 40x200=8000 thì sửa như nào anh giúp em với
-
Bản vẽ em có nhiều layout nhưng do người vẽ trước đó không để cùng tọa độ nên giờ khi in publish em phải chuyển từng layout về cùng 1 tọa độ (0,0,0). Nhờ anh chị viết lisp chuyển bản vẽ ở tất cả các layout về tọa độ 0, 0,0 giúp em Như bản vẽ minh họa em đính kèm ạ. File Cadviet là bản vẽ chỉnh sửa, Frame.CN là khung tên xref ạ
-
4 phút trước, Doan Nguyen Van đã nói:Phần gạch chân này bạn muốn nó gạch tất cả hay chỉ gạch 1 vùng, bản vẽ mẫu sao không có phần này ?
Dạ như hình em gửi trên ạ, do em không dự tính hết các trường hợp ạ. Xin lỗi anh
-
-
20 phút trước, Doan Nguyen Van đã nói:(defun c:te (/ ss ent n) (if (setq ss (acet-ss-to-list (ssget (list (cons 0 "MTEXT,TEXT"))))) (progn (foreach ent ss (if (setq n (vl-string-search "-" (cdr (assoc 1 (entget ent))))) (progn (entmod (subst (cons 1 (strcat (substr (cdr (assoc 1 (entget ent))) (+ n 2) ) "-" (substr (cdr (assoc 1 (entget ent))) 1 n))) (assoc 1 (entget ent)) (entget ent))) ))) (princ))) )
Bạn test thử xem được chưa
Cám ơn anh, cơ bản text không có gạch chân (%%u) thì đạt kết quả rất tốt . Trường hợp có gạch chân thì sẽ mất 1 vế không còn gạch chân, anh có thể khắc phục được nhược điểm này không giúp em thêm được không ạ
-
14 phút trước, quang_lac đã nói:Cái này đâu cần lisp j đâu, dùng lệnh find của cad là được mà
vì dữ liệu 2 bên dấu “-“ của em rất nhiều loại khác nhau anh ạ
-
Nhờ anh / chị giúp đỡ viết giúp em lisp hoán đổi vị trí text trong cùng 1 dòng dựa trên kí tự phân cách "-":
Ví dụ: D16a200-14 thành 14-D16a200. Nếu có thể chọn được nhiều text trên cùng 1 bản vẽ thì càng tốt ạ, em cảm ơn !
-
Mình có sưu tầm 1 tool nhỏ hỗ trở thống kê thép nhưng chỉ cho dùng cho autoacad dưới 2010, giờ mình dùng cad2015 thì load file dll không được. Mong các anh chị em giúp mình chỉnh lại giúp mình sao cho sử dụng cho cad2015. (Mình có gửi link đình kèm). Thanks
-
[yêu cầu] viết lisp chỉnh unit trong cad. ví dụ em muốn vẽ line có chiều dài 500 mà chỉ cần đánh là 1. 500 là đơn vị thực chứ không phải dim ạ. tiện đây các anh giúp em luôn nhé. !
-
Bình thường khi sử dụng fillet giữa 2 đuờng thẳng em thường phải sử dụng thêm lệnh matchprop để cho 2 đối tượng giống nhau. Nay em muốn các anh giúp em một lisp làm sao fillet thì nó sẽ lấy đối tượng chọn trước làm chuẩn để không cần phải matchprop ạ
-
Ý em là: -Ở phần chọn kiểu Hatch chỉ còn 2 hay 3 em cần dùng ví dụ như : ANSI31, ANSI32, ANSI33
-Góc xoay Hatch thì: 0, 15, 30, 45, 60, 90
- Sacle cũng tương tự
- Bỏ cái origin đi
- Màu thì mặc định một loại màu
-
Em có cái lisp khá hay về Hatch nhưng nó quá tổng quát ! mà em muốn rút gọn cho phù hợp nhu cầu của em nhưng em lại không đủ khả năng chỉnh sửa ! các bác giúp em với nhé : yêu cầu của em cụ thể trong bản vẽ ạ ! ( File em gửi gồm cả bản vẽ và cái lisp đó ạ )
-
Hic hình như nó hơi bị thay tỷ lệ Hatch tí ạ ! và phải bấm từng đối tượng. Và cho em hỏi khi có chế độ Asociative đôi lúc em stretch Hatch vẫn ko thay đổi theo là do em đã mắc lỗi gì ạ !
-
1
-
-
Thực ra đó không phải bản vẽ em cần nộp mà em có ý tưởng như thế để mọi người cũng giải quyết đẩy nhanh công việc những lần sau thôi mà ! hí hí bác nhỉ
-
1
-
-
Em có phải Đại Lãn đâu.thắc mắc của em là thắc mắc chung. Nên anh em nào biết thì giúp nhau thôi mà. hí hí
-
Bác xem bản vẻ của em mới hiểu rõ ý em: Nghĩa là ban đầu Hatch của em có nhiều loại khi mà gộp Hatch thì nó chỉ có 1 loại Hatch thôi (ý em là loại chứ không phải đối tuợng ) ! cho em hỏi chút nữa là tại sao khi Hatch có chế độ Associative rồi mà vẫn xảy ra trường hợp strech Hatch vẫn không thay dổi theo ạ !
-
Hic làm Bác ơi như thế thì không ổn vì bản vẽ của em có nhiều Hatch nếu gộp lại thì nó chỉ còn 1 Hatch. như bản vẽ sau ạ !
-
Vì khi người hatch đã bỏ chức năng Associative từ lúc ng ta hatch,bây giờ bạn nhận lại,theo mình thấy thì nó k cho enable chức năng đó lên nữa.Nếu dùng lisp tạo lại đường bao r bật chế độ đó lên thì mình nghĩ cũng k đơn giản đâu bạn :undecided: Nhất là trong trường hợp biên hatch là spline,điều này đề cập nhiều trên 4room r.Chắc phải nhờ các bác cao thủ tính đãViệc hatch lại cũng không có lâu mà :wub: .
Nếu bạn vẫn muốn k phải hatch lại,thủ công thì bạn có thể mần theo cách này : Click đúp vào vùng hatch,chọn Recreate Boundary,chọn Polyline,rồi lúc nó hỏi có muốn Reassociative k,thì bạn chọn Yes :)
Hic cách của Bác đúng yêu cầu của em nhưng như thế mất nhiều động tác mà chỉ có tác dụng cho 1 đối tượng Hatch và nhược điểm nữa là nó để lại cái đường bao rẩt đễ gây chồng chéo . Bác cố gằng giúp em phương án hoàn thiện hơn với ạ !
-
Cái này mình viết hồi mới tập tọe Lisp, dùng có mấy lần rồi chẳng bao giờ dùng nữa. có thể có những lỗi người viết không lường trước vì hồi đó còn gà. Nếu dùng nó gặp lỗi gì thì thông báo lại để mình sửa.;=========================================================================== (prompt"\nCmd:SRT- [Cong-Tru-Nhan-Chia 2 hang TEXT] by Thaistreetz - huuthais@yahoo.com\n") ;=========================================================================== (defun c:srt (/ cmd ss lst data i lst1 lst2) (setq ctnc (cond (ctnc) ("Cong"))) (initget "Cong Tru Nhan CHia") (setq ctnc (cond ((getkword (strcat "\nChon phep tinh: [Cong/Tru/Nhan/CHia/] <" ctnc ">"))) (ctnc))) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "ucs" "world") (prompt"\nChon hang-cot text thu nhat\n") (if (setq ss1 (ssget (list (cons 0 "TEXT")))) (progn (setq lst1 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))) '(lambda (x y) (if (equal (car(setq x1 (cdr (assoc 10 x)))) (car(setq y1 (cdr (assoc 10 y))))) (> (cadr x1) (cadr y1)) (< (car x1) (car y1)))))))) (prompt"\nChon hang-cot text thu 2\n") (if (setq ss2 (ssget (list (cons 0 "TEXT")))) (if (< (- (cadr (cdr(assoc 10 (nth 0 lst1)))) (cadr (cdr(assoc 10 (nth 1 lst1))))) (- (car (cdr(assoc 10 (nth 1 lst1)))) (car (cdr(assoc 10 (nth 0 lst1)))))) (setq lst2 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss2)))) '(lambda (x y) (if (equal (car(setq x2 (cdr (assoc 10 x)))) (car(setq y2 (cdr (assoc 10 y))))) (> (cadr x2) (cadr y2)) (< (car x2) (car y2)))))) (setq lst2 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss2)))) '(lambda (x y) (if (equal (car(setq x2 (cdr (assoc 10 x)))) (car(setq y2 (cdr (assoc 10 y))))) (< (cadr x2) (cadr y2)) (> (car x2) (car y2)))))) )) (if (/= (sslength ss2) (sslength ss1)) (alert "\n Hai tap hop text co so \ndoi tuong khong bang nhau!") (progn (setq ptkq (getpoint "\nChon diem ghi ket qua hoac enter de ghi ket qua vao hang-cot text khac\n")) (if (= ptkq nil) (progn (prompt"\nChon hang-cot text ghi ket qua\n") (if (setq ss3 (ssget (list (cons 0 "TEXT")))) (progn (setq lst3 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss3)))) '(lambda (x y) (if (equal (car(setq x3 (cdr (assoc 10 x)))) (car(setq y3 (cdr (assoc 10 y))))) (> (cadr x3) (cadr y3)) (< (car x3) (car y3)))))))) (if (/= (sslength ss2) (sslength ss3)) (alert "\nTap hop text ghi ket qua \nthua hoac thieu doi tuong!")) );progn );if );progn );if ;---------------------------------- (command "undo" "be") (setq angbs (getvar "angbase")) (setq oldos (getvar "osmode")) (setq Ladim (getvar "Dimzin")) (setq olstyle (getvar "textstyle")) (setq olcol (getvar "CEColor")) (setvar "Dimzin" 0) (setq txti 0) (while (< txti (sslength ss1)) (if (eq ctnc "Cong") (setq kqi (+ (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "Tru") (setq kqi (- (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "Nhan") (setq kqi (* (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "CHia") (setq kqi (/ (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if ptkq (progn (if (< (- (cadr (cdr(assoc 10 (nth 0 lst1)))) (cadr (cdr(assoc 10 (nth 1 lst1))))) (- (car (cdr(assoc 10 (nth 1 lst1)))) (car (cdr(assoc 10 (nth 0 lst1)))))) (setq ptkqi (list (car (cdr(assoc 10 (nth txti lst1)))) (cadr ptkq))) (setq ptkqi (list (car ptkq) (cadr (cdr(assoc 10 (nth txti lst1))))))) (command "textstyle" (cdr(assoc 7 (nth txti lst1))) "osmode" 0 "angbase" 0 "color" 1) (command "text" ptkqi (cdr(assoc 40 (nth txti lst1))) (/ (* 180 (cdr(assoc 50 (nth txti lst1)))) pi) (rtos kqi 2 2)) );progn (entmod (subst (cons 1 (rtos kqi 2 2)) (assoc 1 (nth txti lst3)) (nth txti lst3))) );if (setq txti (1+ txti)) );while ;---------------------------------- (command "ucs" "p") (setvar "textstyle" olstyle) (setvar "Dimzin" Ladim) (setvar "CECOLOR" olcol) (setvar "angbase" angbs) (setvar "osmode" oldos) (command "undo" "e") (setvar "cmdecho" cmd) (princ) )Tiện Bác giúp em viết lisp co yêu cầu như sau ạ:
Khi em lấy bản vẽ mẫu để chỉnh sửa thì các Hatch bản vẽ mẫu không có ASSOCIATIVE nên khi em Stretch co kéo thường phải bỏ Hatch và hach lại. Bác giúp em làm sao để Hatch cũ có chế độ ASSOCIATIVE để Stretch thì Hatch theo luôn ạ !
-
Cái này mình viết hồi mới tập tọe Lisp, dùng có mấy lần rồi chẳng bao giờ dùng nữa. có thể có những lỗi người viết không lường trước vì hồi đó còn gà. Nếu dùng nó gặp lỗi gì thì thông báo lại để mình sửa.;=========================================================================== (prompt"\nCmd:SRT- [Cong-Tru-Nhan-Chia 2 hang TEXT] by Thaistreetz - huuthais@yahoo.com\n") ;=========================================================================== (defun c:srt (/ cmd ss lst data i lst1 lst2) (setq ctnc (cond (ctnc) ("Cong"))) (initget "Cong Tru Nhan CHia") (setq ctnc (cond ((getkword (strcat "\nChon phep tinh: [Cong/Tru/Nhan/CHia/] <" ctnc ">"))) (ctnc))) (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (command "ucs" "world") (prompt"\nChon hang-cot text thu nhat\n") (if (setq ss1 (ssget (list (cons 0 "TEXT")))) (progn (setq lst1 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))) '(lambda (x y) (if (equal (car(setq x1 (cdr (assoc 10 x)))) (car(setq y1 (cdr (assoc 10 y))))) (> (cadr x1) (cadr y1)) (< (car x1) (car y1)))))))) (prompt"\nChon hang-cot text thu 2\n") (if (setq ss2 (ssget (list (cons 0 "TEXT")))) (if (< (- (cadr (cdr(assoc 10 (nth 0 lst1)))) (cadr (cdr(assoc 10 (nth 1 lst1))))) (- (car (cdr(assoc 10 (nth 1 lst1)))) (car (cdr(assoc 10 (nth 0 lst1)))))) (setq lst2 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss2)))) '(lambda (x y) (if (equal (car(setq x2 (cdr (assoc 10 x)))) (car(setq y2 (cdr (assoc 10 y))))) (> (cadr x2) (cadr y2)) (< (car x2) (car y2)))))) (setq lst2 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss2)))) '(lambda (x y) (if (equal (car(setq x2 (cdr (assoc 10 x)))) (car(setq y2 (cdr (assoc 10 y))))) (< (cadr x2) (cadr y2)) (> (car x2) (car y2)))))) )) (if (/= (sslength ss2) (sslength ss1)) (alert "\n Hai tap hop text co so \ndoi tuong khong bang nhau!") (progn (setq ptkq (getpoint "\nChon diem ghi ket qua hoac enter de ghi ket qua vao hang-cot text khac\n")) (if (= ptkq nil) (progn (prompt"\nChon hang-cot text ghi ket qua\n") (if (setq ss3 (ssget (list (cons 0 "TEXT")))) (progn (setq lst3 (vl-sort (mapcar 'entget (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss3)))) '(lambda (x y) (if (equal (car(setq x3 (cdr (assoc 10 x)))) (car(setq y3 (cdr (assoc 10 y))))) (> (cadr x3) (cadr y3)) (< (car x3) (car y3)))))))) (if (/= (sslength ss2) (sslength ss3)) (alert "\nTap hop text ghi ket qua \nthua hoac thieu doi tuong!")) );progn );if );progn );if ;---------------------------------- (command "undo" "be") (setq angbs (getvar "angbase")) (setq oldos (getvar "osmode")) (setq Ladim (getvar "Dimzin")) (setq olstyle (getvar "textstyle")) (setq olcol (getvar "CEColor")) (setvar "Dimzin" 0) (setq txti 0) (while (< txti (sslength ss1)) (if (eq ctnc "Cong") (setq kqi (+ (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "Tru") (setq kqi (- (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "Nhan") (setq kqi (* (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if (eq ctnc "CHia") (setq kqi (/ (atof (cdr(assoc 1 (nth txti lst1)))) (atof (cdr(assoc 1 (nth txti lst2))))))) (if ptkq (progn (if (< (- (cadr (cdr(assoc 10 (nth 0 lst1)))) (cadr (cdr(assoc 10 (nth 1 lst1))))) (- (car (cdr(assoc 10 (nth 1 lst1)))) (car (cdr(assoc 10 (nth 0 lst1)))))) (setq ptkqi (list (car (cdr(assoc 10 (nth txti lst1)))) (cadr ptkq))) (setq ptkqi (list (car ptkq) (cadr (cdr(assoc 10 (nth txti lst1))))))) (command "textstyle" (cdr(assoc 7 (nth txti lst1))) "osmode" 0 "angbase" 0 "color" 1) (command "text" ptkqi (cdr(assoc 40 (nth txti lst1))) (/ (* 180 (cdr(assoc 50 (nth txti lst1)))) pi) (rtos kqi 2 2)) );progn (entmod (subst (cons 1 (rtos kqi 2 2)) (assoc 1 (nth txti lst3)) (nth txti lst3))) );if (setq txti (1+ txti)) );while ;---------------------------------- (command "ucs" "p") (setvar "textstyle" olstyle) (setvar "Dimzin" Ladim) (setvar "CECOLOR" olcol) (setvar "angbase" angbs) (setvar "osmode" oldos) (command "undo" "e") (setvar "cmdecho" cmd) (princ) )Hi hi được rồi ạ ! cảm ơn Mr Thái ! Chúc Bác mạnh khoẻ !
[Nhờ viết lisp] đánh số tự động vào text có sẵn
trong AutoLisp
Đã đăng · Trả lời báo cáo
Nhờ các anh /chị viết giúp em lisp đánh số tự động vào phía sau của text có sẵn (text dim, mtext, text). theo 2 phương X và Y
với phương X thứ tự từ trái qua phải đánh số X1, X2..Xn
với phương Y thự tự trừ dưới lên đánh số Y1, Y2...Yn
như bản vẽ mình đính kèm. Trân trọng cảm ơn !
CadViet.Danh So Tu Dong.dwg