Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
girl

[ yêu cầu ] lisp cắt dim có đường dóng xiên góc ?

Các bài được khuyến nghị

Cut dim là một việc làm rất quan trọng của CAD rồi, trường hợp đường dóng thẳng góc với vật thể được đo thì đã có lisp cut dim, nhưng khi đường dóng xiên một góc a nào đó với vật thể đo mà mình muốn cut dim sao cho chân đường dóng thẳng theo phương x hoặc thẳng theo phương y thì chưa làm được. Xin cadviet viết giúp em cái lisp cut dim cho đối tượng dim có đường dóng xiên góc a với vật thể đo ? Em xin chân thành cảm ơn !

  • Vote tăng 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

 

Cut dim là một việc làm rất quan trọng của CAD rồi, trường hợp đường dóng thẳng góc với vật thể được đo thì đã có lisp cut dim, nhưng khi đường dóng xiên một góc a nào đó với vật thể đo mà mình muốn cut dim sao cho chân đường dóng thẳng theo phương x hoặc thẳng theo phương y thì chưa làm được. Xin cadviet viết giúp em cái lisp cut dim cho đối tượng dim có đường dóng xiên góc a với vật thể đo ? Em xin chân thành cảm ơn !

 

Gửi file mẫu lên đi 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

Khi cắt Dim xiên mà chiều dài 2 chân không bằng nhau thì kết quả sẽ không đúng, vì vậy lisp không xử lý trường hợp này

 

(defun Dxf(n g) (cdr (assoc n g)))
(defun C:Tod ( / a b g k ls e m n l p q) ; Trim oblique dim
    (setq ls (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 0 "Dimension")))))))
    (setq p (trans (getpoint "\nChon Diem :" ) 1 0))
  (foreach e ls    (setq g (entget e) )
        (if (> 2 (setq k (rem (Dxf 70 g) 32)))
            (progn
              (setq l (Dxf 10 g) m (Dxf 13 g) n (Dxf 14 g) a (angle n m))
                (if (= k 0)(setq b (Dxf 50 g)))
                (if (not (equal n l))
                    (if (or (= k 1) (equal a b 1e-8)(equal a (+ b pi) 1e-8))
                        (progn
                            (setq q (inters l n p (polar p a 100) nil))
                            (setq g (subst (cons 14 q) (assoc 14 g) g))
                            (setq g (subst (cons 13 (polar q a (distance m n))) (assoc 13 g) g))
                      (entmod g )
                    ))
                )
     ) ))
    (redraw)
)
  • Vote tăng 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

vâng. Ở bài toán của em là nếu mà vẽ đúng thì các điểm bắt đầu của chân dim chỉ nằm thẳng hàng theo phương x hoặc phương y chứ không có trường hợp chân không thẳng hàng x hoặc y. còn cái minh họa e gửi lên là do cách vẽ bị sai thô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

cách đơn giản nhất là dùng lệnh cắt dim khi dim thằng trước sau đó mới sài lệnh oblique

http://www.cadviet.com/upfiles/3/13239_dim_xien_goc.dwg

Đó là bạn test trên bản vẽ chỉ có dim, nếu trên bản vẽ có hình thì chân dim kéo dài sẽ lệch khỏi vị trí cũ.

 

Xem lại code thì thấy (and (= k 0) là thừa nên đã edit lại ở trê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

Đó là bạn test trên bản vẽ chỉ có dim, nếu trên bản vẽ có hình thì chân dim kéo dài sẽ lệch khỏi vị trí cũ.

 

Xem lại code thì thấy (and (= k 0) là thừa nên đã edit lại ở trên

bạn ví dụ 1 bản vẽ đ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

ví dụ 1 file : http://www.mediafire.com/?givxnjcexdkkqm5

đây là bản vẽ nước ngoài, sử dụng font Nhật nên các bạn mở lên có thể lỗi font !

 

:) làm theo cách của mình đi cứ Dim thẳng và cắt chân dim trước sau đó mới sài lệnh Oligue

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×