Chia.se.Hoc.hoi 1 Báo cáo bài đăng Đã đăng Tháng 4 25 Nhờ các bạn xem giúp, tình hình là có cái bảng chú thích, cái khung hiện tại là Hatch, vậy có cách nào làm cho Hatch chuyển thành Line hoặc Polyline cho tiện điều chỉnh không ạ. Nếu phải dùng Lisp thì nhờ bạn nào biết Code hộ giúp mình cái Lisp. Thank All! CHUYỂN HATCH SANG LINE HOẶC POLYLINE.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
cuongtk2 407 Báo cáo bài đăng Đã đăng Tháng 4 25 Đơn giản nhất là Recreate boundary ra polyline trong lệnh Hacth edit. 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
Chia.se.Hoc.hoi 1 Báo cáo bài đăng Đã đăng Tháng 4 25 Thank bạn cuongtk2: cách này mình đã thử rồi, nhưng nó lệnh này nó tạo đường bao quanh Hatch, cái mình muốn là 1 line hoặc Polyline nằm chính giữa tâm của Hatch, giống như mình dùng Line để vẽ 1 cái khung 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
cuongtk2 407 Báo cáo bài đăng Đã đăng Tháng 4 25 Cái này thuê mình viết lisp 1000k cũng không dám nhậ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
Chia.se.Hoc.hoi 1 Báo cáo bài đăng Đã đăng Tháng 4 25 thank bạn cuongtk2! 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
CadExTools 108 Báo cáo bài đăng Đã đăng Tháng 4 25 2 giờ trước, cuongtk2 đã nói: Cái này thuê mình viết lisp 1000k cũng không dám nhận. em nghĩ với bài toán này của bạn đó. dùng getboundingbox để lấy 2 điểm min,max -> Toạ ra cái Line theo chiều lớn nhất của Hatch là dc ak. 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
cuongtk2 407 Báo cáo bài đăng Đã đăng Tháng 4 25 Cảm ơn @CadExTools đã góp ý. Tuy nhiên khi lấy loop của hatch sẽ ra những polyline khép kín đại diện cho bao ngoài (boundary) và island (đảo) theo loại loop. Bạn có nghĩ 1 đoạn segment có chiều dài lớn nhất của đảo (island) có đại diện cho 1 đường kẻ ngang (dọc) liền mạch được không. Nếu không, bạn sẽ phải có phương án join chúng lại và extend ra biên. Đảm bảo chúng không đè lên nhau. Bài toán này tốn sức, khó chính xác mà không có ý nghĩa trên thực tế. Trường hợp này với mình sẽ rã thành polyline rồi đồ 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
thewind0910 11 Báo cáo bài đăng Đã đăng Tháng 4 25 Toàn hình vuông nghĩ ko đc vẽ chay cho khoẻ hehe 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
Doan Van Ha 3207 Báo cáo bài đăng Đã đăng Tháng 4 25 Đây là 1 table mà người vẽ chắc chưa rành dùng Cad, thay vì sử dụng width của pline thì họ lại dùng hatch, vừa thiếu chuyên nghiệp vừa nặng file. Viết tạm cho vui thôi chứ chả mặn với bài toán này. Còn mấy chỗ hở hoặc dư thì bạn dùng extend hoặc trim để xử thủ công (viết lisp cũng được nhưng mất công). (defun C:ABC(/ Midle ss i ent lst p1 p2 p3 p4) (defun Midle(p q) (mapcar '(lambda(p q) (/ (+ p q) 2.0)) p q)) (setq ss (ssget '((0 . "HATCH"))) i 0) (repeat (sslength ss) (setq lst nil ent (ssname ss i) i (1+ i)) (setq lst (entget ent) lst (vl-remove-if '(lambda(x) (or (/= (car x) 10) (equal (cdr x) '(0.0 0.0 0.0)))) lst)) (setq lst (vl-sort lst '(lambda(x y / p) (setq p (cdr (car lst))) (< (distance p (cdr x)) (distance p (cdr y)))))) (setq p1 (cdr (car lst)) p2 (cdr (cadr lst)) p3 (cdr (caddr lst)) p4 (cdr (cadddr lst))) (entmakex (list (cons 0 "Line") (cons 10 (Midle p1 p2)) (cons 11 (Midle p3 p4)))) (entdel ent)) (princ)) 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
Chia.se.Hoc.hoi 1 Báo cáo bài đăng Đã đăng Tháng 4 26 thank bạn Doan Van Ha và tất cả các bạn đã giúp đở nhé! Lisp của bạn Doan Van Ha giúp ích cho mình rất nhiều! 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