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

Tìm giao điểm của 2 đối tượng trong bản vẽ CAD

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

Nhờ cả nhà giúp đỡ

 

VD mình có một số đường giao nhau trên bản vẽ CAD

 

Mình muốn tìm giao điểm của 2 đường nào đó bằng con chỏ chuột thì làm thế nào

cho xin code nhé

code DVB

 

nghe nói có hàm

IntersectWith

 

ai viet ho code voi

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
Mình muốn tìm giao điểm của 2 đường nào đó thì làm thế nào

 

Muốn tìm giao điển của hai đường thẳng cùng nằm trong một mặt phẳng bạn dùng lệnh FILLET với R= 0 ( Auto Cad 2007)

- Với hai đường thẳng không // với nhau hoặc một đường thẳng nằm trong phạm vi R của một đường cong nó sẽ cắt nhau tại 1 điểm.

- Với hai đường thẳng // với nhau, giao đểm của nó sẽ là một nửa đường tròn có đường kính bằng khoảng cách giữa hai đường thẳng đó.

 

Trường hợp hai đường thẳng chéo nhau trong không gian sẽ không tìm được giao điểm của hai đường thẳng. Nhưng ta vẫn có thể tìm được giao điểm của hai đường thẳng này với đường thẳng thứ 3 vuông góc với mặt phẳng mà hai đường đó tạo bởi với mặt phẳng một góc <90 độ

 

Ví dụ đường thẳng a tạo với mặt phẳng XOY một góc 27 độ, đường thẳng b tạo với mặt phẳng một góc 38 độ. Dùng lệnh TRIM bạn sẽ tìm được giao điểm của hai đường thẳng này với đường thẳng vuông góc với mặt phẳng XOY. ( đường thẳng này sẽ đi qua hai điểm bị cắt bởi lệnh TRIM. Tôi thường xuyên dùng cách này để kết nối đường ống trong không gian nối hai thiết bị có chiều cao khác nhau.

Tôi thấy có cái lips của bạn SSG bạn ngâm cứu thử xem !( lips tìm giao của đường thẳng với mặt phẳng, bạn có thể nhờ SSG viết lips tìm giao của hai đường thẳng)

Các bạn dùng thử lisp này:

1- Lệnh ILP (Intersection between Line and Plane), chọn line và chỉ định 3 điểm thuộc mặt phẳng. Kết quả: 1 point giao điểm

2- Lệnh IPP (Intersection between Plane and Plane), chỉ định 6 điểm xác định 2 mặt phẳng. Kết quả: 1 line giao tuyến.

 

;;;------------------------------------------
(defun intlp(p1 p2 p3 p4 p5 / tp1 tp2 ip)
(command "ucs" "n" "3" p3 p4 p5)
(setq
   tp1 (trans p1 0 1)
   tp2 (trans p2 0 1)
)
(if (setq ip (inters tp1 tp2 (list (car tp1) (cadr tp1) 0) (list (car tp2) (cadr tp2) 0) nil))
   (setq ip (trans ip 1 0))
)
(command "ucs" "w")
ip
)
;;;------------------------------------------
(defun C:ILP(/ dL pL1 pL2 pp1 pp2 pp3 p)
(setq
   dL (entget (car (entsel "\nChon duong thang:")))
   pL1 (cdr (assoc 10 dL))
   pL2  (cdr (assoc 11 dL))
   pp1 (getpoint "\nDiem 1 tren mat phang:")
   pp2 (getpoint pp1 "\nDiem 2 tren mat phang:")
   pp3 (getpoint pp2 "\nDiem 3 tren mat phang:")
   p (intlp pL1 pL2 pp1 pp2 pp3)
)
(setvar "pdmode" 34)
(entmake (list (cons 0 "point") (cons 10 p)))
(princ)
)
;;;------------------------------------------
(defun C:IPP(/ p11 p12 p13 p21 p22 p23 p1 p2)
(setq
   p11 (getpoint "\nDiem 1 tren mat phang 1:")
   p12 (getpoint p11 "\nDiem 2 tren mat phang 1:")
   p13 (getpoint p12 "\nDiem 3 tren mat phang 1:")
   p21 (getpoint "\nDiem 1 tren mat phang 2:")
   p22 (getpoint p21 "\nDiem 2 tren mat phang 2:")
   p23 (getpoint p22 "\nDiem 3 tren mat phang 2:")
   p1 (intlp p11 p12 p21 p22 p23 )
   p2 (intlp p11 p13 p21 p22 p23 )
)
(entmake (list (cons 0 "line") (cons 10 p1) (cons 11 p2)))
(princ)
)
;;;------------------------------------------

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

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  

×