nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 10 Chào các bạn, MÌnh muốn viết code hatch 1 vùng giới hạn bởi các đoạn thẳng nhưng không biết viết ntn, mong các bạn hướng dẫn giúp! Cám ơn các bạn. Chương trình của mình đại ý như sau: Quote (entmakex (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2))) (entmakex (list (cons 0 "LINE") (cons 10 P2) (cons 11 P3))) (entmakex (list (cons 0 "LINE") (cons 10 P3) (cons 11 P4))) (entmakex (list (cons 0 "LINE") (cons 10 P4) (cons 11 P1))) ;;; Code hatch vùng được tạo bởi 4 line (hoặc pline) 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
tannguyen291 81 Báo cáo bài đăng Đã đăng Tháng 8 10 2 giờ trước, nguyenkienAgr đã nói: Chào các bạn, MÌnh muốn viết code hatch 1 vùng giới hạn bởi các đoạn thẳng nhưng không biết viết ntn, mong các bạn hướng dẫn giúp! Cám ơn các bạn. Chương trình của mình đại ý như sau: Có 3 cách hatch. Cách 1: đơn giản nhất là dùng (command "Bhatch" "s" ss "") Cách 2 Dùng objectArx (vla-AddHatch Object PatternType PatternName Associativity HatchObjectType ) Cách 3 dùng entmake (khó vler) Bạn phải kiểm soát cực kỳ tốt các mã dxf cho các loop 91 số lượng loop 92 biểu thị loop là giới hạn trong hay ngoài của hatch 93 biểu thị số lượng edge trong loop 72 73 dành cho các đoạn pline, line, arc theo đúng trình tự Sau đó còn cần kiểm soát cấu hình của hatch mỗi loại hatch cần 1 cấu hình khác nhau (giống như linetype mệt ẻ) Và entmake. 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 10 6 giờ trước, tannguyen291 đã nói: Có 3 cách hatch. Cách 1: đơn giản nhất là dùng (command "Bhatch" "s" ss "") Cách 2 Dùng objectArx (vla-AddHatch Object PatternType PatternName Associativity HatchObjectType ) Cách 3 dùng entmake (khó vler) Bạn phải kiểm soát cực kỳ tốt các mã dxf cho các loop 91 số lượng loop 92 biểu thị loop là giới hạn trong hay ngoài của hatch 93 biểu thị số lượng edge trong loop 72 73 dành cho các đoạn pline, line, arc theo đúng trình tự Sau đó còn cần kiểm soát cấu hình của hatch mỗi loại hatch cần 1 cấu hình khác nhau (giống như linetype mệt ẻ) Và entmake. Cám ơn bạn đã chỉ dẫn. Nhưng thực sự mình chỉ biết ít về lisp thôi. Bạn có thể cho 1 ví dụ về 1 trong 3 cách trên giúp mình được không? Cám ơn 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
tannguyen291 81 Báo cáo bài đăng Đã đăng Tháng 8 11 Ví dụ cách 1 cho dễ :)) (setq lst (list (entmakex (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2))) (entmakex (list (cons 0 "LINE") (cons 10 P2) (cons 11 P3))) (entmakex (list (cons 0 "LINE") (cons 10 P3) (cons 11 P4))) (entmakex (list (cons 0 "LINE") (cons 10 P4) (cons 11 P1))) ) ) (foreach item in lst (setq ss (ssadd item ss)) ) (command "bhatch" "s" ss "") 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
limfx 4 Báo cáo bài đăng Đã đăng Tháng 8 11 Vào lúc 10/8/2023 tại 11:34, nguyenkienAgr đã nói: Chào các bạn, MÌnh muốn viết code hatch 1 vùng giới hạn bởi các đoạn thẳng nhưng không biết viết ntn, mong các bạn hướng dẫn giúp! Cám ơn các bạn. Chương trình của mình đại ý như sau: Sao bạn không tận dụng hàm boundary có vẻ đơn giản hơn để tạo đường bao. Sau đó Hatch: (vla-setPattern obj acHatchPatternTypePreDefined pattern) 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 11 15 giờ trước, tannguyen291 đã nói: Ví dụ cách 1 cho dễ :)) (setq lst (list (entmakex (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2))) (entmakex (list (cons 0 "LINE") (cons 10 P2) (cons 11 P3))) (entmakex (list (cons 0 "LINE") (cons 10 P3) (cons 11 P4))) (entmakex (list (cons 0 "LINE") (cons 10 P4) (cons 11 P1))) ) ) (foreach item in lst (setq ss (ssadd item ss)) ) (command "bhatch" "s" ss "") Từ gợi ý của bạn mình đã làm được. Cám ơn bạn rất nhiều! Quote (defun C:ZZ () (setq P1 (list 0 0) P2 (list 0 100) P3 (list 100 100) P4 (list 100 0) P5 (list 50 50) ) ;_ E_of_setq (setq LST (list (entmakex (list (cons 0 "LINE") (cons 10 P1) (cons 11 P2))) (entmakex (list (cons 0 "LINE") (cons 10 P2) (cons 11 P3))) (entmakex (list (cons 0 "LINE") (cons 10 P3) (cons 11 P4))) (entmakex (list (cons 0 "LINE") (cons 10 P4) (cons 11 P1))) ) ;_ E_of_list ) ;_ E_of_setq (setq SS (ssadd)) (foreach ITEM LST (ssadd ITEM SS) ) ;_ E_of_foreach (setvar "HPNAME" "SOLID") (command "bhatch" "s" SS "" "") ) ;_ E_of_defun 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 11 10 giờ trước, limfx đã nói: Sao bạn không tận dụng hàm boundary có vẻ đơn giản hơn để tạo đường bao. Sau đó Hatch: (vla-setPattern obj acHatchPatternTypePreDefined pattern) Mình ko thạo các lệnh vla- bạn ạ, nhưng mình sẽ lưu lại để ng cứu. Cám ơn 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 13 Chào các bạn, Vẫn phải nhờ các bạn giúp vụ hatch này: - Lisp dưới đây chỉ chạy đúng khi gọi lệnh lần thứ 2 trở đi, lần thứ 1 luôn báo lỗi "Valid hatch boundary not found." (defun C:xx () (setq LST (list (command ".pline" (list 0 0) (list 100 100) (list 100 250) (list 0 300) (list 0 100) "") (entmakex (list (cons 0 "LINE") (cons 10 (list 0 150)) (cons 11 (list 300 150)))) (entmakex (list (cons 0 "LINE") (cons 10 (list 0 200)) (cons 11 (list 300 200)))) (entmakex (list (cons 0 "LINE") (cons 10 (list 200 300)) (cons 11 (list 200 0)))) ) ;_ E_of_list ) ;_ E_of_setq (setvar "HPNAME" "SOLID") (command "_.boundary" (list 150 180) "") (command "bhatch" (list 150 180) "") ) ;_ E_of_defun Mình không hiểu lỗi do đâu? Nhờ các bạn sửa giúp, cám ơn các 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
duy782006 1.510 Báo cáo bài đăng Đã đăng Tháng 8 14 Bạn tìm trên cadviet hàm tạo pline từ tập hợp các tọa độ. Tạo xong pline thì hatch chọn đối tượng last là xong. 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 15 Vào lúc 14/8/2023 tại 10:02, duy782006 đã nói: Bạn tìm trên cadviet hàm tạo pline từ tập hợp các tọa độ. Tạo xong pline thì hatch chọn đối tượng last là xong. Cám ơn bạn gợi ý. Để mình tìm thử 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
limfx 4 Báo cáo bài đăng Đã đăng Tháng 8 15 Mình chưa biết đối tượng bạn định hatch là gì? 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 8 21 Vào lúc 15/8/2023 tại 15:28, limfx đã nói: Mình chưa biết đối tượng bạn định hatch là gì? Là các vùng kín tạo bởi các line và polyline 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
nguyenkienAgr 2 Báo cáo bài đăng Đã đăng Tháng 9 4 Event help!!! 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 81 Báo cáo bài đăng Đã đăng Tháng 9 5 Mình nghĩ rằng bạn nên mua sách học lại từ đầu về ngôn ngữ lập trình Đừng học mẹo kiểu vậy. Không ai muốn dạy kiểu nửa mùa như vậy đâu bạn à. (defun C:xx () (setq LST (list ;;;; tạo cái lst này để làm gì (command ".pline" (list 0 0) (list 100 100) (list 100 250) (list 0 300) (list 0 100) "") ;;; đây là cái gì tại sao đưa vào lst (entmakex (list (cons 0 "LINE") (cons 10 (list 0 150)) (cons 11 (list 300 150)))) (entmakex (list (cons 0 "LINE") (cons 10 (list 0 200)) (cons 11 (list 300 200)))) (entmakex (list (cons 0 "LINE") (cons 10 (list 200 300)) (cons 11 (list 200 0)))) ) ;_ E_of_list ) ;_ E_of_setq (setvar "HPNAME" "SOLID") (command "_.boundary" (list 150 180) "") ;;;; boundary này để làm gì (command "bhatch" (list 150 180) "") ;;; cad có đang viewport vào khu vực này không ???? lệnh bhatch này có đợi boundary không hay là chạy cùng lúc. ) ;_ E_of_defun 1 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