tuan9002 11 Báo cáo bài đăng Đã đăng Tháng 2 26, 2023 Vào lúc 24/2/2023 tại 14:59, Duong Nhat Duy đã nói: Ko vấn đề gì bạn ơi, bạn thêm dấu ; vào đầu dòng này là đc. Nếu quên lệnh bạn có thể gõ ?? để hiện cái bảng đó lên. Lisp mình viết gà nên đăng hẳn code mở lên đây cho ae vừa xem vừa sửa hộ luôn :)) cảm ơn bác đã chia sẻ, mình là người dùng bình thường không biết về lips, có những người chia sẻ như bác giúp công việc của mọi người hoàn thành nhanh hơn. rất trân trọng! 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 302 Báo cáo bài đăng Đã đăng Tháng 2 27, 2023 Vào lúc 26/2/2023 tại 10:21, mr.thanh2610 đã nói: Bác @Duong Nhat Duy cho mình hỏi có thể thêm 2 lựa chọn cho cách tính lệnh DT2 pick điểm-nhiều điểm là : 1 lựa chọn trừ lỗ khoét (như lisp hiện tại), 2 pick tới đâu cộng dồn tới đó (thêm vào) được không ạ, Vì mình đang muốn tính kiểu Pick-nhiều điểm S=S1+S2+S3+S4 hoặc S=S1+S2+S3 chẳng hạn.Mong được phản hồi từ bác, cảm ơn ạ P/s: Mình biết có cách tính DT4 sẽ giải quyết vấn đề trên nhưng ý mình muốn tính trong trường hợp không có hatch và pick nhiều điểm Bản chất lệnh DT2 là lệnh pick tới đâu cộng dồn tới đó như bạn nói, nhưng cái này là do lisp lỗi nên nó tính nhầm (do biến HPISLANDDETECTION), mình đã fix và update lên đầu topic r nhé, cảm ơn bạn đã tìm ra lỗi này ! 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
mr.thanh2610 1 Báo cáo bài đăng Đã đăng Tháng 2 28, 2023 Vào lúc 27/2/2023 tại 16:16, Duong Nhat Duy đã nói: Bản chất lệnh DT2 là lệnh pick tới đâu cộng dồn tới đó như bạn nói, nhưng cái này là do lisp lỗi nên nó tính nhầm (do biến HPISLANDDETECTION), mình đã fix và update lên đầu topic r nhé, cảm ơn bạn đã tìm ra lỗi này ! Ok bác, dùng ngon lành rồi, 1 lần nước 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
Duong Nhat Duy 302 Báo cáo bài đăng Đã đăng Tháng 3 3, 2023 Hiện nay có 1 vấn đề là nếu dùng CAD09 trở xuống thì lệnh DT2 sẽ bị lỗi khi tính diện tích 1 miền có lỗ hổng ở giữa, các bạn phải vào lệnh HATCH, tích vào 2 ô như hình, xong hatch đại 1 cái gì đấy để cho nó lưu cái cài đặt đó lại, xong thì dùng như bình thường. Lisp mình đã update lại (phiên bản cũ sẽ bị lỗi lệnh DT2 luôn chứ ko phải là ko tính đc), các bạn down lại trên đầu topic. Hiện tại mình chưa tìm được tên biến của 2 thằng này ở cad đời thấp, pro nào biết chỉ giúp mình nhé, mình 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
NTHAHT 82 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 18 giờ trước, Duong Nhat Duy đã nói: Hiện nay có 1 vấn đề là nếu dùng CAD09 trở xuống thì lệnh DT2 sẽ bị lỗi khi tính diện tích 1 miền có lỗ hổng ở giữa, các bạn phải vào lệnh HATCH, tích vào 2 ô như hình, xong hatch đại 1 cái gì đấy để cho nó lưu cái cài đặt đó lại, xong thì dùng như bình thường. Lisp mình đã update lại (phiên bản cũ sẽ bị lỗi lệnh DT2 luôn chứ ko phải là ko tính đc), các bạn down lại trên đầu topic. Hiện tại mình chưa tìm được tên biến của 2 thằng này ở cad đời thấp, pro nào biết chỉ giúp mình nhé, mình cảm ơn! DT2 sửa như sau: (defun C:dt2 ( / AREA ENT_LAST STR SUM) (setvar "CMDECHO" 0) (if (getvar "HPISLANDDETECTIONMODE") (setvar "HPISLANDDETECTIONMODE" 1)) (if (getvar "HPISLANDDETECTION") (setvar "HPISLANDDETECTION" 0) (setvar "HPNAME" "SOLID,N")) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (setq ent_last (entlast)) (while (entnext ent_last) (setq ent_last (entnext ent_last))) (command "-HATCH") (while (> (getvar "CMDACTIVE") 0) (command pause) ) (setq sum 0.00) (while (setq ent_last (entnext ent_last)) (if (= (cdr (assoc 0 (entget ent_last))) "HATCH") (progn (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get (vlax-ename->vla-object ent_last) 'area)))))) (setq area 0.00) ) (setq sum (+ sum area)) ) ) (entdel ent_last) ) (setq str (tdt_convert sum 3DUY-TDT-UNIT 3DUY-TDT-FACTOR 3DUY-TDT-PRECISION 3DUY-TDT-PREFIX 3DUY-TDT-SUFFIX 3DUY-TDT-COMMA 3DUY-TDT-SWAP 3DUY-TDT-ZERO)) (mk_text1 3DUY-TDT-BLOCK str (nentsel "\nChon vi tri xuat ket qua") (getvar "CLAYER") (if (and (= 3DUY-TDT-AUTO 0) 3DUY-TDT-STYLE-NAME) 3DUY-TDT-STYLE-NAME (getvar "TEXTSTYLE")) (if (= 3DUY-TDT-AUTO 1) (/ (getvar "VIEWSIZE") 50) 3DUY-TDT-HEIGHT) 3DUY-TDT-WIDTH 0 acAlignmentMiddleCenter 3DUY-TDT-BLOCK-NAME 3DUY-TDT-SCALE (list (cons 3DUY-TDT-TAG-NAME str)) nil ) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (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
Duong Nhat Duy 302 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 2 giờ trước, NTHAHT đã nói: DT2 sửa như sau: (defun C:dt2 ( / AREA ENT_LAST STR SUM) (setvar "CMDECHO" 0) (if (getvar "HPISLANDDETECTIONMODE") (setvar "HPISLANDDETECTIONMODE" 1)) (if (getvar "HPISLANDDETECTION") (setvar "HPISLANDDETECTION" 0) (setvar "HPNAME" "SOLID,N")) (vla-startundomark (vla-get-activedocument (vlax-get-acad-object))) (setq ent_last (entlast)) (while (entnext ent_last) (setq ent_last (entnext ent_last))) (command "-HATCH") (while (> (getvar "CMDACTIVE") 0) (command pause) ) (setq sum 0.00) (while (setq ent_last (entnext ent_last)) (if (= (cdr (assoc 0 (entget ent_last))) "HATCH") (progn (if (vl-catch-all-error-p (vl-catch-all-apply (function (lambda () (setq area (vlax-get (vlax-ename->vla-object ent_last) 'area)))))) (setq area 0.00) ) (setq sum (+ sum area)) ) ) (entdel ent_last) ) (setq str (tdt_convert sum 3DUY-TDT-UNIT 3DUY-TDT-FACTOR 3DUY-TDT-PRECISION 3DUY-TDT-PREFIX 3DUY-TDT-SUFFIX 3DUY-TDT-COMMA 3DUY-TDT-SWAP 3DUY-TDT-ZERO)) (mk_text1 3DUY-TDT-BLOCK str (nentsel "\nChon vi tri xuat ket qua") (getvar "CLAYER") (if (and (= 3DUY-TDT-AUTO 0) 3DUY-TDT-STYLE-NAME) 3DUY-TDT-STYLE-NAME (getvar "TEXTSTYLE")) (if (= 3DUY-TDT-AUTO 1) (/ (getvar "VIEWSIZE") 50) 3DUY-TDT-HEIGHT) 3DUY-TDT-WIDTH 0 acAlignmentMiddleCenter 3DUY-TDT-BLOCK-NAME 3DUY-TDT-SCALE (list (cons 3DUY-TDT-TAG-NAME str)) nil ) (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) Mình chưa hiểu bạn ơi, nó đang bị lỗi phần định nghĩa Island chứ có liên quan gì đến Patern đâu nhỉ ? 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 302 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 14 giờ trước, Nguyễn Hà Huy đã nói: Của em bị lỗi fonts bác ơi Cái này chắc liên quan đến CAD, mình cũng ko rõ nữa, bạn hỏi cáo cao thủ CAD xem 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
tannguyen291 135 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 Vào lúc 30/12/2022 tại 12:11, NTHAHT đã nói: Còn trường hợp này nữa, trong đó: -> Ngoài là cái Rectang, trong là cái block, block này bao gồm: - DT1 là Mtext - TB-01 là ATT (multiline) - BLOCK-1 là Multileader. - Rectang màu đỏ. *** Đối với Hatch thì các đối tượng đó được bỏ qua. Như vậy có thể dùng lọc tuỳ chỉnh. không quá khó đâu bạn (defun BoundaryAreaPoint (pt / ent lst area ss) (setq ent (entlast) ss (ssget "All" '((0 . "............")) ;;;>>>>> đối tượng muốn lọc <<<<<;;;;;; ) (vl-cmdf "_.boundary" "A" "B" "N" ss "" "I" "Y" "O" "R" "X" pt "") (while (setq ent (entnext ent)) (setq lst (cons (vlax-ename->vla-object ent) lst)) ) (if (< 1 (length lst)) (progn (setq lst (vl-sort lst '(lambda (a b) (> (vla-get-area a) (vla-get-area b))))) (foreach item (cddr lst) (vla-boolean (cadr lst) acunion item) ) (vla-boolean (car lst) acsubtraction (cadr lst)) ) ) (setq area (vla-get-area (CAR lst))) (LIST area (CAR lst)) ) 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
NTHAHT 82 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 4 giờ trước, Duong Nhat Duy đã nói: Mình chưa hiểu bạn ơi, nó đang bị lỗi phần định nghĩa Island chứ có liên quan gì đến Patern đâu nhỉ ? Tại sao bạn không test nhỉ? Với cad không có biến HPISLANDDETECTION thì gán HPNAME kèm theo ISLAND Như vậy, với mỗi Patern có 3 trường hợp, ví dụ với SOLID: 1: "SOLID,N" (Normal) tương đương HPISLANDDETECTION = 0 2: "SOLID,O" (Outer) tương đương HPISLANDDETECTION = 1 3: "SOLID,I" (Ignore) tương đương HPISLANDDETECTION = 2 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
tuan9002 11 Báo cáo bài đăng Đã đăng Tháng 3 4, 2023 Vào lúc 20/12/2022 tại 16:30, Duong Nhat Duy đã nói: Gửi đến các bạn 1 lisp tính diện tích all-in-one, đơn giản, dễ dùng, và có thể tính được theo nhiều yêu cầu đề bài. Cách dùng: - Load lisp, nhập lệnh TL để thiếp lập các thông số như đơn vị, cao chữ,… Chỉ cần khai báo 1 lần - Các lệnh tính diện tích bao gồm 4 lệnh riêng biệt như sau: DT1: pick điểm, bấm đâu tính đó DT2: pick nhiều điểm, cộng gộp vào nhau (text kết quả có thể tạo mới bằng cách bấm vào khoảng trắng hoặc sửa text, att bằng cách bấm chọn 1 text, att đã có sẵn trên bản vẽ) DT3: chọn đối tượng, có thể chọn được nhiều đối tượng cùng lúc, nhiều kiểu đối tượng ví dụ: Pline, Spline, Hatch, Region,… DT4: như DT3 nhưng là chọn 1 nhóm đối tượng, kết quả là tổng diện tích các đối tượng (text kết quả có thể tạo mới bằng cách bấm vào khoảng trắng hoặc sửa text, att bằng cách bấm chọn 1 text, att đã có sẵn trên bản vẽ) Bonus: kết quả xuất ra có thể là Block do mình định nghĩa (ví dụ Block tem đất), khai báo trong lệnh TL File lisp (Update 10/02/2023): Tinh dien tich.lsp Chúc các bạn thành công :))) Có cách nào cài đặt 1 lần, lần sau không phải cài đặt lại các thông số không bác. vì mỗi lần mở 1 bản vẽ là phải cài đặt lại thông số tính diện tích 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 302 Báo cáo bài đăng Đã đăng Tháng 3 5, 2023 Vào lúc 4/3/2023 tại 15:54, tuan9002 đã nói: Có cách nào cài đặt 1 lần, lần sau không phải cài đặt lại các thông số không bác. vì mỗi lần mở 1 bản vẽ là phải cài đặt lại thông số tính diện tích Hiện tại lisp vẫn chưa có tính năng này, mình sẽ thêm trong lần cập nhật sau nhé, hiện tại bạn chịu khó chỉnh tay 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 302 Báo cáo bài đăng Đã đăng Tháng 3 6, 2023 Vào lúc 4/3/2023 tại 15:28, NTHAHT đã nói: Tại sao bạn không test nhỉ? Với cad không có biến HPISLANDDETECTION thì gán HPNAME kèm theo ISLAND Như vậy, với mỗi Patern có 3 trường hợp, ví dụ với SOLID: 1: "SOLID,N" (Normal) tương đương HPISLANDDETECTION = 0 2: "SOLID,O" (Outer) tương đương HPISLANDDETECTION = 1 3: "SOLID,I" (Ignore) tương đương HPISLANDDETECTION = 2 Mình hiểu r, vậy còn biến "HPISLANDDETECTIONMODE" giải quyết như nào 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
Duong Nhat Duy 302 Báo cáo bài đăng Đã đăng Tháng 3 14, 2023 11 giờ trước, Nguyễn Hà Huy đã nói: Em có file cad này, có 1 số vùng tính diện tích toàn ra kết quả =0 hoặc lỗi không tính được mong bác giúp Test.dwg Do hatch của bạn bị lỗi, trong Properties cũng ko hiện diện tích thì lisp nó ko tính được. Hatch lỗi thì nhiều lí do lắm, có thể do đường bao bị trùng nét, ... Cách giải quyết: Hiện đường bao hatch lên, join vào (nếu ko kín) rồi tính diện tích cái đường bao đó = lệnh DT3 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
VoHoan 6 Báo cáo bài đăng Đã đăng Tháng 3 20, 2023 Vào lúc 14/3/2023 tại 09:32, Duong Nhat Duy đã nói: Do hatch của bạn bị lỗi, trong Properties cũng ko hiện diện tích thì lisp nó ko tính được. Hatch lỗi thì nhiều lí do lắm, có thể do đường bao bị trùng nét, ... Cách giải quyết: Hiện đường bao hatch lên, join vào (nếu ko kín) rồi tính diện tích cái đường bao đó = lệnh DT3 Mình hay dùng để kiểm tra diện tích trắc ngang thường bị lỗi này, giờ có thể bổ sung thêm tính năng khắc phục được nhược điểm này không nhỉ. 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 302 Báo cáo bài đăng Đã đăng Tháng 3 21, 2023 20 giờ trước, VoHoan đã nói: Mình hay dùng để kiểm tra diện tích trắc ngang thường bị lỗi này, giờ có thể bổ sung thêm tính năng khắc phục được nhược điểm này không nhỉ. Chỉ có cách tắt bớt layer thừa, trùng thôi bạn, bản chất lisp nó cũng như lệnh cad thôi, bạn BO đc, HATCH đc thì lisp nó mới làm đc Bất đắc dĩ thì dùng đến cái này, tương tự như dùng lệnh Hatch, mà kết quả có thể sẽ có sai số, thậm chí lỗ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
minhkiboo 0 Báo cáo bài đăng Đã đăng Tháng 4 1, 2023 Không chạy được trên cad 2005 bác ơi , tính diện tích toàn ra 0.00 , mà phần mềm nghề của em toàn chạy trên cad 2005 trở xuống á , bác xem có chỉnh lại đc ko ạ. 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 302 Báo cáo bài đăng Đã đăng Tháng 4 3, 2023 Vào lúc 1/4/2023 tại 12:07, minhkiboo đã nói: Không chạy được trên cad 2005 bác ơi , tính diện tích toàn ra 0.00 , mà phần mềm nghề của em toàn chạy trên cad 2005 trở xuống á , bác xem có chỉnh lại đc ko ạ. Bạn gặp lỗi trong lệnh nào (DT1234?), cho mình xin cái ảnh dòng command sau khi chạy lisp thì mình mới phán đc, tiện bạn gửi luôn bản vẽ ví dụ 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
minhkiboo 0 Báo cáo bài đăng Đã đăng Tháng 4 3, 2023 6 giờ trước, Duong Nhat Duy đã nói: Bạn gặp lỗi trong lệnh nào (DT1234?), cho mình xin cái ảnh dòng command sau khi chạy lisp thì mình mới phán đc, tiện bạn gửi luôn bản vẽ ví dụ trên cad 2005 lệnh DT1,DT2 ko hoạt động dù đó là 1 hình REC kín, DT3 vẫn hoạt động 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
minhkiboo 0 Báo cáo bài đăng Đã đăng Tháng 4 3, 2023 Vào lúc 24/2/2023 tại 14:59, Duong Nhat Duy đã nói: Ko vấn đề gì bạn ơi, bạn thêm dấu ; vào đầu dòng này là đc. Nếu quên lệnh bạn có thể gõ ?? để hiện cái bảng đó lên. Lisp mình viết gà nên đăng hẳn code mở lên đây cho ae vừa xem vừa sửa hộ luôn :)) với lại bác có thể thêm vào lệnh DT2, Dt4 các đường chỉ từ kết quả vào vùng tính diện tích khi tính gộp nhiều diện tích được không ạ 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 302 Báo cáo bài đăng Đã đăng Tháng 4 3, 2023 22 giờ trước, minhkiboo đã nói: trên cad 2005 lệnh DT1,DT2 ko hoạt động dù đó là 1 hình REC kín, DT3 vẫn hoạt động Bạn mở cad, gõ lệnh -hatch, kéo dòng command hiển thị độ 10 dòng mình xem Mà bạn dùng hệ điều hành gì giao diện trong lạ và đẹp mắt vậ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
Duong Nhat Duy 302 Báo cáo bài đăng Đã đăng Tháng 4 3, 2023 2 giờ trước, minhkiboo đã nói: với lại bác có thể thêm vào lệnh DT2, Dt4 các đường chỉ từ kết quả vào vùng tính diện tích khi tính gộp nhiều diện tích được không ạ Mình đã thêm vào bản 1.01, bạn down ở đầu topic nhé, cảm ơn bạn đã 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
minhkiboo 0 Báo cáo bài đăng Đã đăng Tháng 4 4, 2023 19 giờ trước, Duong Nhat Duy đã nói: Mình đã thêm vào bản 1.01, bạn down ở đầu topic nhé, cảm ơn bạn đã góp ý ! đây bạn ơi , mình sài giả lập win xp để chạy phần mềm chuyên dụng ,mà khi chạy diện tích dt1 toàn ra 0, cad 2005 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
OngNguyenVanHan 1 Báo cáo bài đăng Đã đăng Tháng 4 4, 2023 mình nhớ cái p.m bạn đang xài chạy đc trên cad2007 mà nhỉ, mà giờ mk toàn thấy dùng ads với tdt 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
minhkiboo 0 Báo cáo bài đăng Đã đăng Tháng 4 4, 2023 18 phút trước, OngNguyenVanHan đã nói: mình nhớ cái p.m bạn đang xài chạy đc trên cad2007 mà nhỉ, mà giờ mk toàn thấy dùng ads với tdt mình bên mỏ , ko có S mua key, dùng crack trên nền 2005. topo hsmo 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 302 Báo cáo bài đăng Đã đăng Tháng 4 4, 2023 3 giờ trước, minhkiboo đã nói: đây bạn ơi , mình sài giả lập win xp để chạy phần mềm chuyên dụng ,mà khi chạy diện tích dt1 toàn ra 0, cad 2005 Bạn mở file lisp, dùng lệnh Replace (Ctrl+H), đổi hết -HATCH thành HATCH xem có đc ko 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