Đến nội dung


Hình ảnh
- - - - -

[ Yêu cầu ] Lisp vẽ giao điểm hai tiếp tuyến


  • Please log in to reply
16 replies to this topic

#1 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 03 July 2012 - 11:32 PM

E có 1 đường cong muốn vẽ giao điểm hai tiếp tuyến tại hai điểm A, B hai điểm đầu, cuối của đường cong như Trong file
http://www.cadviet.c...92_drawing1.dwg

. Mong các bác giúp em chứ vẽ thủ công vất lắm ( em phải vẽ nhiều giao điểm hai tiếp tuyến của đường cong như thế này )
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 03 July 2012 - 11:49 PM

Lisp vẽ 2 tiếp tuyến tại 2 đầu mút Curve đến điểm giao của chúng.

;Doan Van Ha - CADViet.com - Ngay 03/7/2012
;Muc dich: Ve 2 tiep tuyen tai 2 dau Curve den diem giao cua chung.
(defun C:HA( / obj pd pc gocd gocc pg)
(vl-load-com)
(princ "\nChon cac Curve can ve 2 tiep tuyen...")
(ssget '((0 . "*LINE,ARC")))
(vlax-for obj (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq pd (vlax-curve-getStartPoint obj))
(setq pc (vlax-curve-getEndPoint obj))
(setq gocd (angle '(0 0 0) (vlax-curve-getFirstDeriv obj (vlax-curve-getParamAtPoint obj pd))))
(setq gocc (angle '(0 0 0) (vlax-curve-getFirstDeriv obj (vlax-curve-getParamAtPoint obj pc))))
(setq pg (inters pd (polar pd gocd 1) pc (polar pc gocc 1) nil))
(LWPoly (list pd pg pc) 0))
(princ))
(defun LWPoly (lst cls)
(entmake (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) (cons 70 cls))
(mapcar (function (lambda (p) (cons 10 p))) lst))))
P/S (04/7/2012): hiệu chỉnh để vẽ được nhiều curve được chọn.
  • 4

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 04 July 2012 - 12:11 AM

e cám ơn bác Doan Van Ha đã nhiệt tình giúp.Chúc bác sức khỏe.
  • 0

#4 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2882 Bài viết
Điểm đánh giá: 1556 (rất tốt)

Đã gửi 04 July 2012 - 06:53 AM

E có 1 đường cong muốn vẽ giao điểm hai tiếp tuyến tại hai điểm A, B hai điểm đầu, cuối của đường cong như Trong file
http://www.cadviet.c...92_drawing1.dwg

. Mong các bác giúp em chứ vẽ thủ công vất lắm ( em phải vẽ nhiều giao điểm hai tiếp tuyến của đường cong như thế này )

Hình đã gửi

Vẽ thủ công cũng đơn giản thôi mà bác!
Shift + Chuột phải > chọn Osnap Setting > Hiện ra bảng trên > Bấm chọn như hình vẽ.
Gõ L > Polar tracking theo hai điểm A và B > Bấm chọn điểm P khi hiện ra dấu X nhỏ mầu trắng rồi tiếp tục vẽ.
  • 3

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#5 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 July 2012 - 10:22 AM



Vẽ thủ công cũng đơn giản thôi mà bác!
Shift + Chuột phải > chọn Osnap Setting > Hiện ra bảng trên > Bấm chọn như hình vẽ.
Gõ L > Polar tracking theo hai điểm A và B > Bấm chọn điểm P khi hiện ra dấu X nhỏ mầu trắng rồi tiếp tục vẽ.



Hề hề hề,
Bác Haanh cho minh hỏi chút xíu, vì sao trên Cad2004 của mình không thể thực hiện được như bác đã hướng dẫn. Sau khi mình chọn hai điểm temporary tracking point thì nó chỉ cho chọn vết theo các trục tọa độ chứ không cho chọn theo phương tiếp tuyến bác ạ.
Có nhẽ CAD2004 của mình có vấn đê gì chăng?? hay phải thiết lập lại biến hệ thống nào hả bác???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 04 July 2012 - 10:37 AM

Bác phải tick vào Tangent nữa nó mới bắt theo 2 tiếp tuyến.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#7 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 04 July 2012 - 11:11 AM

Cám ơn các bác đã quan tâm tới em , e cũng biết các vẽ của bac Haanh rui, nhưng e phải vẽ nhiều nên mất thời gian.
  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 04 July 2012 - 11:12 AM

Tôi đã hiệu chỉnh để cho bạn chọn nhiều Curve cùng lúc (vẫn link cũ ở trên).
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2882 Bài viết
Điểm đánh giá: 1556 (rất tốt)

Đã gửi 04 July 2012 - 11:28 AM

Khi thực hiện em di chuột qua 2 điểm A và B sau đó di chuột theo hướng tiếp tuyến, được liền. (Cũng có thể AutoCAD2004 nó không hỗ trợ)

Hình đã gửi

Nếu đã di chuột theo trục tọa độ (bước 1), bác thử kéo xuống và di chuột theo hướng tiếp tuyến xem có được không?

Hình đã gửi

Sau khi gõ lệnh L , em di chuột qua 2 điểm A và B sau đó di chuột theo hướng tiếp tuyến, được liền. (Cũng có thể AutoCAD2004 nó không hỗ trợ Tangent bác ạ!)
  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#10 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 04 July 2012 - 11:55 AM

Bác phải tick vào Tangent nữa nó mới bắt theo 2 tiếp tuyến.

Hề hề hề,
Vẫn không được bác ạ, kể cả khi mình tắt hết osnap chỉ để lại tangent. Vậy mới kỳ cục. Chắc là CAd của minh bị lỗi chứ không phải bác haanh hướng dẫn sai đâu....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 04 July 2012 - 12:22 PM

Thực ra, không cần Polar Tracking gì cả. Chỉ osnap vào Entpoint và Tangent là vẽ được 2 tiếp tuyến và điểm giao.
Cách vẽ: rê chuột đến từng endpoint, sau đó rê từ từ để dò điểm giao. Nó sẽ xuất hiện 2 đường "chấm chấm" và giao là 1 "dấu x".
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#12 Chiron

Chiron

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 04 July 2012 - 12:36 PM

Hề hề hề,
Vẫn không được bác ạ, kể cả khi mình tắt hết osnap chỉ để lại tangent. Vậy mới kỳ cục. Chắc là CAd của minh bị lỗi chứ không phải bác haanh hướng dẫn sai đâu....

Hình như CAD 2004 chưa hỗ trợ bác Bình à. Một lần nữa, bác nên chuyển từ từ qua các version mới hơn. Nếu bác ngại thì khi cài autoCAD, bác chọn Migrate Custom Setting, nó sẽ copy toàn bộ những gì bác đã customize qua luôn. Bác cứ dùng 2 bản song song cho đến khi nào thấy đã đầy đủ thì chuyển hẳn sang version mới. Thứ lỗi cho Chiron đã nhắc lại 1 lần nữa vì thấy tiếc cho bác quá.
  • 1

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 04 July 2012 - 02:45 PM

Đã đi mượn máy để kiểm tra cho bác PTB. Kết quả: cad2004 im hơi lặng tiếng!
Thôi thì, bác chuyển đời lên đi, chí ít cũng thêm +3 nữa. Tôi tài trợ bác... sự khuyến khích! :D
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 phamvanthiet108

phamvanthiet108

    biết vẽ polygon

  • Members
  • PipPip
  • 73 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 04 July 2012 - 06:36 PM

Tôi đã hiệu chỉnh để cho bạn chọn nhiều Curve cùng lúc (vẫn link cũ ở trên).

Em cám ơn bác.
  • 0

#15 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2882 Bài viết
Điểm đánh giá: 1556 (rất tốt)

Đã gửi 04 July 2012 - 07:17 PM

Thực ra, không cần Polar Tracking gì cả. Chỉ osnap vào Entpoint và Tangent là vẽ được 2 tiếp tuyến và điểm giao.
Cách vẽ: rê chuột đến từng endpoint, sau đó rê từ từ để dò điểm giao. Nó sẽ xuất hiện 2 đường "chấm chấm" và giao là 1 "dấu x".

Em vẫn dùng F10 và F11 để tắt và bật. Khi dòng command hiện <Polar off> và <Object Snap Tracking off> ==> di chuột không hiện ra ..."chấm chấm" :
Command: <Polar off> ( nhấn F10)
Command: <Object Snap Tracking off> ( nhấn F11)
(Em đã kiểm tra lại: CAD 2004 không hỗ trợ Tangent. AutoCAD đời mới hỗ trợ nhiều Polar Tracking ( Không cần phải lựa chọn Increment angle ) . Vẽ 3D cũng thoáng hơn.
  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 05 July 2012 - 09:00 AM

Em vẫn dùng F10 và F11 để tắt và bật. Khi dòng command hiện <Polar off> và <Object Snap Tracking off> ==> di chuột không hiện ra ..."chấm chấm" :
Command: <Polar off> ( nhấn F10)
Command: <Object Snap Tracking off> ( nhấn F11)
(Em đã kiểm tra lại: CAD 2004 không hỗ trợ Tangent. AutoCAD đời mới hỗ trợ nhiều Polar Tracking ( Không cần phải lựa chọn Increment angle ) . Vẽ 3D cũng thoáng hơn.

F10 (Polar Tracking) thì ON hay OFF đều không sao cả, chỉ F11 thôi.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#17 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2882 Bài viết
Điểm đánh giá: 1556 (rất tốt)

Đã gửi 05 July 2012 - 10:34 AM

Hình đã gửi

Khi ở trạng thái bấm chọn như hình ảnh, sẽ có hai khả năng:

1-) F11 (Object Snap Tracking) thì ON hay OFF đều không sao cả. OFF chỉ bắt được Tangent; ON bắt được Tangent , phương OX, OY và góc giữa hai đường thẳng (Nếu có bấm chọn khác...).
2-) Nếu F10 (Polar) OFF và F11 (Object Snap Tracking) OFF, sẽ có sao là không bắt được Tangent >> Muốn bắt được phải nhấn F11 hoặc nhấn F10 thêm một lần nữa.

Tóm cổ lại: Trong mọi trường hợp, để tránh phiền toái và tiện lợi nhiều mặt, khi vẽ bình thường đóng (OFF) cả F10 vàF11; khi cần Polar tracking mở (ON) cả F10 và F11 cho nó lành, bác ạ!
  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”