lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 th.dwg 3 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
dinhvantrang 151 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 Trình bày thì ko trình bày, quăng mỗi bản vẽ lên với cái tiêu đề. Làm như ai đó cũng rảnh mà tải về rồi mở bản vẽ lên, sau đó hỏi bạn yêu cầu này nọ để viết. Đi nhờ mà làm như bố thiên hạ. 1 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
Duong Nhat Duy 486 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 Thôi dù sao trong bản vẽ bạn ý cũng đã trình bày cụ thể vấn đề rồi. Mình giúp bạn theo cách nhanh nhé: 1. Nếu đa số trường hợp cần cắt của bạn giống như ví dụ thì bạn chỉ cần tạm thời đóng kín pline đỏ lại (nối 2 đầu lại), sau đó dùng EXTRIM, chọn miền trong pline đó là OK. 2. Bạn dùng lệnh TEXTMASK, tuy nhiên nó liên quan đến việc tạo wipeout và không hiện viền wipeout, nếu ý đồ của bạn ko phải vậy thì dùng lệnh này đc. 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 xXin lỗi các bác về điều vô ý trên . thực tình thì em cũng không cố ý về điều đó .mong các bác thông cảm bỏ qua 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 3 phút trước, lethanh2004 đã nói: Cảm ơn Bác Duy đã thông cảm và chia sẻ Trong trường hợp 2 đã đúng ý của em rồi . còn trường hợp 1 vì nhiều lý do không thể nối ( sau này sẽ mất công tách lớp ) lên em muốn có 1 lệnh nào đó bo tất cả rồi chọn miền cắ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
Duong Nhat Duy 486 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 16 phút trước, lethanh2004 đã nói: Hehe, vì dốt lisp nên mình bày cho bạn cách nữa để chữa cháy: Bạn copy toàn bộ sang 1 bên, 1 bên bạn extrim đường trên, bên kia extrim đường dưới, move lại đúng vị trí, có thể sinh ra 1 vài chỗ bị trùng đối tượng thì giải quyết bằng lệnh OVERKILL để xóa đối tượng trùng nhau. 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 ;o Cũng là 1 ý tưởng hay . nhưng giả dụ như có 5 hay 6 đường đỏ ( hoặc hơn ) làm như vậy thì lâu lắm ạ 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
Tue_NV 3918 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 Lâu ngày không viết nên ngứa ngáy tay chân. Lisp của bạn đây : Lệnh TRR (defun c:trr(/ e1 e2 i en) (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)) ) (defun Tue-list-tach (lst count / i j Lst-tinh Reslis) ;;;;;Ex: (Tue-list-tach '(1 5 4 6 3 5) 2)--> ((1 5) (4 6) (3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 3)--> ((1 5 4) (6 3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 5)--> nil (setq i 0 j 0) (while (and (< i (/ (length lst) count)) (= (rem (length lst) count) 0)) (Repeat count (setq Lst-tinh (append Lst-tinh (list (nth j lst)) )) (setq j (1+ j)) ) (setq Reslis (append Reslis (list Lst-tinh)) Lst-tinh nil) (setq i (1+ i)) ) Reslis ) (defun Tue-geom-inters(e1 e2 flag / Lst_tong Lst);;;Tue-list-tach ;;; flag= 0 : acExtendNone Does not extend either object. ;;; flag= 1 : acExtendThisEntity Extends the base object. ;;; flag= 2 : acExtendOtherEntity Extends the object passed as an argument. ;;; flag= 3 : acExtendBoth Extends both objects. ;;Ex: (Tue-geom-inters (ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 1 :") 0) ;;;;;;;;;;;;;;;;;;;;;;;(ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 2 :") 0) 0) (if (= (type e1) 'ENAME) (setq e1 (vlax-ename->vla-object e1))) (if (= (type e2) 'ENAME) (setq e2 (vlax-ename->vla-object e2))) (Tue-list-tach (vlax-invoke e1 'IntersectWith e2 flag) 3) ) ;;;main (setq e1 (car(entsel "\n Chon duong cat 1 :"))) (setq e2 (car(entsel "\n Chon duong cat 2 :")) i -1) (if (setq ss (ssget '((0 . "*LINE,ARC")))) (while (setq en (ssname ss (setq i (1+ i)))) (if (and (= (length (setq p1 (Tue-geom-inters e1 en 0))) 1) (= (length (setq p2 (Tue-geom-inters e2 en 0))) 1)) (command "._trim" e1 e2 "" (Tue-geom-divpt (car p1) (car p2) 0.5) "") ) ) ) ) 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 5 giờ trước, Tue_NV đã nói: Lâu ngày không viết nên ngứa ngáy tay chân. Lisp của bạn đây : Lệnh TRR trr.lsp [✎] (defun c:trr(/ e1 e2 i en) (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)) ) (defun Tue-list-tach (lst count / i j Lst-tinh Reslis) ;;;;;Ex: (Tue-list-tach '(1 5 4 6 3 5) 2)--> ((1 5) (4 6) (3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 3)--> ((1 5 4) (6 3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 5)--> nil (setq i 0 j 0) (while (and (< i (/ (length lst) count)) (= (rem (length lst) count) 0)) (Repeat count (setq Lst-tinh (append Lst-tinh (list (nth j lst)) )) (setq j (1+ j)) ) (setq Reslis (append Reslis (list Lst-tinh)) Lst-tinh nil) (setq i (1+ i)) ) Reslis ) (defun Tue-geom-inters(e1 e2 flag / Lst_tong Lst);;;Tue-list-tach ;;; flag= 0 : acExtendNone Does not extend either object. ;;; flag= 1 : acExtendThisEntity Extends the base object. ;;; flag= 2 : acExtendOtherEntity Extends the object passed as an argument. ;;; flag= 3 : acExtendBoth Extends both objects. ;Ex: (Tue-geom-inters (ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 1 :") 0) ;;;;;;;;;;;;;;;;;;;;;;(ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 2 :") 0) 0) (if (= (type e1) 'ENAME) (setq e1 (vlax-ename->vla-object e1))) (if (= (type e2) 'ENAME) (setq e2 (vlax-ename->vla-object e2))) (Tue-list-tach (vlax-invoke e1 'IntersectWith e2 flag) 3) ) ;;;main (setq e1 (car(entsel "\n Chon duong cat 1 :"))) (setq e2 (car(entsel "\n Chon duong cat 2 :")) i -1) (if (setq ss (ssget '((0 . "*LINE,ARC")))) (while (setq en (ssname ss (setq i (1+ i)))) (if (and (= (length (setq p1 (Tue-geom-inters e1 en 0))) 1) (= (length (setq p2 (Tue-geom-inters e2 en 0))) 1)) (command "._trim" e1 e2 "" (Tue-geom-divpt (car p1) (car p2) 0.5) "") ) ) ) ) Cảm ơn bác Tuệ đã quan tâm . nhưng bác cho em hỏi sao em load lisp lên lại không dùng được ạ ( em dùng cad 2007 ) . em 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 5 giờ trước, Tue_NV đã nói: Lâu ngày không viết nên ngứa ngáy tay chân. Lisp của bạn đây : Lệnh TRR trr.lsp [✎] (defun c:trr(/ e1 e2 i en) (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)) ) (defun Tue-list-tach (lst count / i j Lst-tinh Reslis) ;;;;;Ex: (Tue-list-tach '(1 5 4 6 3 5) 2)--> ((1 5) (4 6) (3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 3)--> ((1 5 4) (6 3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 5)--> nil (setq i 0 j 0) (while (and (< i (/ (length lst) count)) (= (rem (length lst) count) 0)) (Repeat count (setq Lst-tinh (append Lst-tinh (list (nth j lst)) )) (setq j (1+ j)) ) (setq Reslis (append Reslis (list Lst-tinh)) Lst-tinh nil) (setq i (1+ i)) ) Reslis ) (defun Tue-geom-inters(e1 e2 flag / Lst_tong Lst);;;Tue-list-tach ;;; flag= 0 : acExtendNone Does not extend either object. ;;; flag= 1 : acExtendThisEntity Extends the base object. ;;; flag= 2 : acExtendOtherEntity Extends the object passed as an argument. ;;; flag= 3 : acExtendBoth Extends both objects. ;Ex: (Tue-geom-inters (ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 1 :") 0) ;;;;;;;;;;;;;;;;;;;;;;(ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 2 :") 0) 0) (if (= (type e1) 'ENAME) (setq e1 (vlax-ename->vla-object e1))) (if (= (type e2) 'ENAME) (setq e2 (vlax-ename->vla-object e2))) (Tue-list-tach (vlax-invoke e1 'IntersectWith e2 flag) 3) ) ;;;main (setq e1 (car(entsel "\n Chon duong cat 1 :"))) (setq e2 (car(entsel "\n Chon duong cat 2 :")) i -1) (if (setq ss (ssget '((0 . "*LINE,ARC")))) (while (setq en (ssname ss (setq i (1+ i)))) (if (and (= (length (setq p1 (Tue-geom-inters e1 en 0))) 1) (= (length (setq p2 (Tue-geom-inters e2 en 0))) 1)) (command "._trim" e1 e2 "" (Tue-geom-divpt (car p1) (car p2) 0.5) "") ) ) ) ) Bác Tuệ cho em hỏi mình có nhiều đối tượng hơn 2 ( trong lisp) thì có dùng được lisp này không ạ ( bản vẽ bên dưới ạ ) ;Ex: (Tue-geom-inters (ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 1 :") 0) ;;;;;;;;;;;;;;;;;;;;;;(ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 2 :") 0) 0) EM CẢM ƠN th.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
Tue_NV 3918 Báo cáo bài đăng Đã đăng Tháng 6 6, 2019 10 giờ trước, lethanh2004 đã nói: Cảm ơn bác Tuệ đã quan tâm . nhưng bác cho em hỏi sao em load lisp lên lại không dùng được ạ ( em dùng cad 2007 ) . em cảm ơn bạn thêm dòng (vl-load-com) vào đầu lisp là sử dụng được nhé Viết thêm code bổ sung chọn nhiều đường cắt màu đỏ 1./ Chọn các đường cắt màu đỏ 2./ Chọn toàn bộ đường cần cắt. Quét hết (có thể trong đó bao gồm luôn cả đường cắt) thì lisp sẽ hoạt động (vl-load-com) (defun c:trr(/ es1 e2 i en j lst-res ss1 ss) (defun Tue-geom-divpt (p1 p2 k) (polar p1 (angle p1 p2) (* (distance p1 p2) k)) ) (defun Tue-list-tach (lst count / i j Lst-tinh Reslis) ;;;;;Ex: (Tue-list-tach '(1 5 4 6 3 5) 2)--> ((1 5) (4 6) (3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 3)--> ((1 5 4) (6 3 5)) ;;;;;;;;;(Tue-list-tach '(1 5 4 6 3 5) 5)--> nil (setq i 0 j 0) (while (and (< i (/ (length lst) count)) (= (rem (length lst) count) 0)) (Repeat count (setq Lst-tinh (append Lst-tinh (list (nth j lst)) )) (setq j (1+ j)) ) (setq Reslis (append Reslis (list Lst-tinh)) Lst-tinh nil) (setq i (1+ i)) ) Reslis ) (defun Tue-geom-inters(e1 e2 flag / Lst_tong Lst);;;Tue-list-tach ;;; flag= 0 : acExtendNone Does not extend either object. ;;; flag= 1 : acExtendThisEntity Extends the base object. ;;; flag= 2 : acExtendOtherEntity Extends the object passed as an argument. ;;; flag= 3 : acExtendBoth Extends both objects. ;;Ex: (Tue-geom-inters (ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 1 :") 0) ;;;;;;;;;;;;;;;;;;;;;;;(ssname (TUE-SS-ENTSEL '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")) "\npick chon doi tuong thu 2 :") 0) 0) (if (= (type e1) 'ENAME) (setq e1 (vlax-ename->vla-object e1))) (if (= (type e2) 'ENAME) (setq e2 (vlax-ename->vla-object e2))) (Tue-list-tach (vlax-invoke e1 'IntersectWith e2 flag) 3) ) ;;;main (princ "chon cac duong cat: ") (setq ss1 (ssget '((0 . "*LINE"))) j -1 i -1 lst-res '()) (princ "chon cac duong can cat: ") (setq ss (ssget '((0 . "*LINE,ARC"))));;line cat (while (setq en (ssname ss (setq i (1+ i)))) (while (setq es1 (ssname ss1 (setq j (1+ j)))) (if (setq p1 (Tue-geom-inters es1 en 0)) (setq lst-res (append lst-res (List (car p1)))) ) ) (if (= (length lst-res) 2) (command "._break" en "non" (car lst-res) "non" (cadr lst-res)) ) (setq j -1 lst-res '()) ) ) 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 bác Tuệ cho em hỏi Lỗi trr Unknown command "TRR". Press F1 for help. là lỗi gì thế bác . háo hức dùng quá mà cứ bị lỗi.hi 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
Tue_NV 3918 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 Mình dùng CAD 2008 ok. Bạn có thể tải file Lisp gốc tại đây : trr (1).lsp 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
dinhsyha 0 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 Command: ap APPLOAD trr.lsp successfully loaded. Command: ; error: syntax error khi mình load lisp và nhận được thông báo này bác Tuệ ơ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
Tue_NV 3918 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 Bạn tải lại lisp này nhé trr (2).lsp 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 Quá tuyệt vời bác Tuệ Ơi . 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 49 phút trước, Tue_NV đã nói: Bạn tải lại lisp này nhé trr (2).lsp Bác Tuệ cho em phiền xíu nữa . sao em test bản vẽ này lại không cắt được ạ test.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
conghoa 141 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 6 phút trước, lethanh2004 đã nói: Bác Tuệ cho em phiền xíu nữa . sao em test bản vẽ này lại không cắt được ạ test.dwg Nó thuộc phạm trù về kỹ năng vẽ của bạn, cái này không cần lisp cũng làm nhanh được. Chỉ cần hiện riêng layer 0, Bo lại phần đường, dùng lệnh extrim là đượ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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 1 phút trước, conghoa đã nói: Nó thuộc phạm trù về kỹ năng vẽ của bạn, cái này không cần lisp cũng làm nhanh được. Chỉ cần hiện riêng layer 0, Bo lại phần đường, dùng lệnh extrim là được. cảm ơn bác Conghoa đã góp ý . như em đã nói ở trên . do em tách lớp phân biệt các loại đường ( theo chuyên ngành cuả e ) . nếu nối khép kín sau này lại mất công tách từng lớp đường đó ra . bác có ý gì hay bác chia sẻ giúp em vs ạ 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
conghoa 141 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 1 phút trước, lethanh2004 đã nói: cảm ơn bác Conghoa đã góp ý . như em đã nói ở trên . do em tách lớp phân biệt các loại đường ( theo chuyên ngành cuả e ) . nếu nối khép kín sau này lại mất công tách từng lớp đường đó ra . bác có ý gì hay bác chia sẻ giúp em vs ạ Nhiệm vụ tạo đường bo bằng lệnh BO chỉ để mục đích extrim nhanh các đối tượng nằm trong đường bo đó, sau khi extrim xong bạn có thể xóa nó đi mà. 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 ý bác là coppy các tuyến đó ra nối thành 1 đường bo khép kín rồi thực hiện lệnh .... đó cũng là 1 ý hay . cảm ơn bác đã gó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
conghoa 141 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 4 phút trước, lethanh2004 đã nói: ý bác là coppy các tuyến đó ra nối thành 1 đường bo khép kín rồi thực hiện lệnh .... đó cũng là 1 ý hay . cảm ơn bác đã góp ý Bạn nên học lại các lệnh đơn giản, mình đã nói rõ là: Chỉ cần hiện riêng layer 0, Bo lại phần đường, dùng lệnh extrim là được: - Hiện riêng layer 0 bằng lệnh layiso - đánh lệnh BO để bo bên trong các đường của bạn - Hiện toàn bộ layer lên bằng lệnh layon - Đánh lệnh extrim để xóa các đối tượng bên trong đường bo Kết quả đạt được giống như hình mình có post bên trên. 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
lethanh2004 2 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 10 phút trước, conghoa đã nói: Bạn nên học lại các lệnh đơn giản, mình đã nói rõ là: Chỉ cần hiện riêng layer 0, Bo lại phần đường, dùng lệnh extrim là được: - Hiện riêng layer 0 bằng lệnh layiso - đánh lệnh BO để bo bên trong các đường của bạn - Hiện toàn bộ layer lên bằng lệnh layon - Đánh lệnh extrim để xóa các đối tượng bên trong đường bo Kết quả đạt được giống như hình mình có post bên trên. Cảm ơn bác conghoa . em hơi dốt cad lên bác thông cảm . em thấy lệnh bo nếu là 1 tuyến thì ok . nhưng nếu nó lại chia ra nhiều tuyến riêng biệt thì cũng hơi đau đầu . mong bác chia sẻ 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
conghoa 141 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 10 phút trước, lethanh2004 đã nói: Cảm ơn bác conghoa . em hơi dốt cad lên bác thông cảm . em thấy lệnh bo nếu là 1 tuyến thì ok . nhưng nếu nó lại chia ra nhiều tuyến riêng biệt thì cũng hơi đau đầu . mong bác chia sẻ Bạn gửi ví dụ lê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
Tue_NV 3918 Báo cáo bài đăng Đã đăng Tháng 6 7, 2019 File chỉ gửi với 1 đối tương chỉ giao cắt với 2 điểm. nếu PLInE giao cắt nhiều điểm với dao cắt thì phải viết kiểu khác 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