Đến nội dung


Hình ảnh

Có cái này rất hay hỏi các pro


  • Please log in to reply
10 replies to this topic

#1 minhnghi

minhnghi

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 26 June 2009 - 10:49 AM

Em đang làm một bản giao thông, nhưng tim đường là những đường cong, em muốn dựng những tiếp tuyến tại những đường cong đó. Tức là giả sử có một đường cong, em muốn dựng 2 đường tiếp tuyến tại 2 đầu của đường cong đó, nhưng không biết trong cad có lệnh nào làm như vậy không. Em đã bật chế độ bắt điểm tangent nhưng không áp dụng cho đường cong được. Các bác xem trong cad có lệnh nào làm được như vậy không bảo em với, hoặc bác nào có thể viết lisp đó giúp em được không. Cảm ơn các bác nhiều :s_big:
  • 0
- Gà con vẽ CAD -

#2 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 761 (tốt)

Đã gửi 26 June 2009 - 10:57 AM

Em đang làm một bản giao thông, nhưng tim đường là những đường cong, em muốn dựng những tiếp tuyến tại những đường cong đó. Tức là giả sử có một đường cong, em muốn dựng 2 đường tiếp tuyến tại 2 đầu của đường cong đó, nhưng không biết trong cad có lệnh nào làm như vậy không. Em đã bật chế độ bắt điểm tangent nhưng không áp dụng cho đường cong được. Các bác xem trong cad có lệnh nào làm được như vậy không bảo em với, hoặc bác nào có thể viết lisp đó giúp em được không. Cảm ơn các bác nhiều :s_big:

Bạn nên gửi lên một ví dụ cụ thể gồm cái "đường cong", điểm bắt đầu của tiếp tuyến muốn vẽ. Vì thực tế có trường hợp từ một số điểm nào đó không thể vẽ tiếp tuyến với một đường cong cho trước.
  • 0

#3 q288

q288

    biết lệnh fillet

  • Members
  • PipPipPipPip
  • 209 Bài viết
Điểm đánh giá: 164 (tàm tạm)

Đã gửi 26 June 2009 - 11:29 AM

Em đang làm một bản giao thông, nhưng tim đường là những đường cong, em muốn dựng những tiếp tuyến tại những đường cong đó. Tức là giả sử có một đường cong, em muốn dựng 2 đường tiếp tuyến tại 2 đầu của đường cong đó, nhưng không biết trong cad có lệnh nào làm như vậy không. Em đã bật chế độ bắt điểm tangent nhưng không áp dụng cho đường cong được. Các bác xem trong cad có lệnh nào làm được như vậy không bảo em với, hoặc bác nào có thể viết lisp đó giúp em được không. Cảm ơn các bác nhiều :s_big:


Bạn thử cái lisp này xem.

(defun c:gt( / ent obj dai pt1 pt2 ang1 ang2)
(setq ent (car (entsel "Chon duong cong:"))
dai (getreal "\nChieu dai 2 doan tiep tuyen:")
obj (vlax-ename->vla-object ent)
pt1 (vlax-curve-getStartPoint obj)
pt2 (vlax-curve-getEndPoint obj)
ang1 (angle '(0 0 0) (vlax-curve-getFirstDeriv obj
(vlax-curve-getParamAtPoint obj pt1)))
ang2 (angle '(0 0 0) (vlax-curve-getFirstDeriv obj
(vlax-curve-getParamAtPoint obj pt2)))
)
(if (vlax-curve-getClosestPointto obj (polar pt1 ang1 dai))
(setq dai (- dai)))
(entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 (polar pt1 ang1 dai))))

(if (vlax-curve-getClosestPointto obj (polar pt2 ang2 dai))
(setq dai (- dai)))
(entmake (list '(0 . "LINE") (cons 10 pt2) (cons 11 (polar pt2 ang2 dai))))
)

  • 1

#4 truongnhataz

truongnhataz

    biết vẽ rectang

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

Đã gửi 26 June 2009 - 12:07 PM

Bạn thử cái lisp này xem.


(defun c:gt( / ent obj dai pt1 pt2 ang1 ang2)
(setq ent (car (entsel "Chon duong cong:"))
dai (getreal "\nChieu dai 2 doan tiep tuyen:")
obj (vlax-ename->vla-object ent)
pt1 (vlax-curve-getStartPoint obj)
pt2 (vlax-curve-getEndPoint obj)
ang1 (angle '(0 0 0) (vlax-curve-getFirstDeriv obj
(vlax-curve-getParamAtPoint obj pt1)))
ang2 (angle '(0 0 0) (vlax-curve-getFirstDeriv obj
(vlax-curve-getParamAtPoint obj pt2)))
)
(if (vlax-curve-getClosestPointto obj (polar pt1 ang1 dai))
(setq dai (- dai)))
(entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 (polar pt1 ang1 dai))))

(if (vlax-curve-getClosestPointto obj (polar pt2 ang2 dai))
(setq dai (- dai)))
(entmake (list '(0 . "LINE") (cons 10 pt2) (cons 11 (polar pt2 ang2 dai))))
)

cai này hay nhưng ban phải bung ra hay cắt từng đoạn mình muốn ráp ường thẳng vào . nhừng làm vậy nó kho tiếp uyên với hai dường cong liên tuc . chắt phải vẽ hai đường thăng rôi mới chon ban 1 kinh đương cong
  • 1

TIẾT KIỆM LÀ BẢO VÊ MÔI TRƯỜNG


#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 26 June 2009 - 02:05 PM

Mình đoán là bản vẽ của bạn không còn vị trí các đỉnh đổi hướng của tuyến nên muốn xác định lại.
Cách đơn giản không cần dùng lisp
- Nếu đường cong không nối trực tiếp với nhau thì bạn còn 2 cánh tuyến. extend 2 cánh tuyến này ra cắt nhau tại đâu thì đỉnh tại đó.
- Nếu 2 đường cong nối trực tiếp thì thông thường mõi đường cong bạn còn 1 cánh tuyến. bạn cũng làm tương tự. extend 2 cánh tuyến còn lại của 2 đường cong rồi mirror 1 trong 2 cánh tuyến đó qua đường vuông góc với đường thẳng nối từ TD và TC của đường cong đó. bạn sẽ tìm được cánh tuyến chung của cả 2 đường cong.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#6 minhnghi

minhnghi

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 26 June 2009 - 03:50 PM

Mình đoán là bản vẽ của bạn không còn vị trí các đỉnh đổi hướng của tuyến nên muốn xác định lại.
Cách đơn giản không cần dùng lisp
- Nếu đường cong không nối trực tiếp với nhau thì bạn còn 2 cánh tuyến. extend 2 cánh tuyến này ra cắt nhau tại đâu thì đỉnh tại đó.
- Nếu 2 đường cong nối trực tiếp thì thông thường mõi đường cong bạn còn 1 cánh tuyến. bạn cũng làm tương tự. extend 2 cánh tuyến còn lại của 2 đường cong rồi mirror 1 trong 2 cánh tuyến đó qua đường vuông góc với đường thẳng nối từ TD và TC của đường cong đó. bạn sẽ tìm được cánh tuyến chung của cả 2 đường cong.

Thank bạn, nhưng bạn chưa hiểu vấn đề của mình lắm thì phải. Mình có các đường cong nối với nhau, nhưng mình muốn tìm cánh tuyến của nó.
  • 0
- Gà con vẽ CAD -

#7 minhnghi

minhnghi

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 26 June 2009 - 04:01 PM

cai này hay nhưng ban phải bung ra hay cắt từng đoạn mình muốn ráp ường thẳng vào . nhừng làm vậy nó kho tiếp uyên với hai dường cong liên tuc . chắt phải vẽ hai đường thăng rôi mới chon ban 1 kinh đương cong

Em đã sử dụng lisp này, nhưng thấy báo lỗi sau :
Command: gt
Chon duong cong:
Chieu dai 2 doan tiep tuyen:10
; error: no function definition: VLAX-ENAME->VLA-OBJECT
Các bác chỉ bảo giúp em xem với
  • 0
- Gà con vẽ CAD -

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 26 June 2009 - 04:09 PM

Em đã sử dụng lisp này, nhưng thấy báo lỗi sau :
Command: gt
Chon duong cong:
Chieu dai 2 doan tiep tuyen:10
; error: no function definition: VLAX-ENAME->VLA-OBJECT
Các bác chỉ bảo giúp em xem với

Dưới dòng Code :
(defun c:gt( / ent obj dai pt1 pt2 ang1 ang2)
Bạn thêm dòng : (vl-load-com)
  • 1

#9 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 26 June 2009 - 04:26 PM

Thank bạn, nhưng bạn chưa hiểu vấn đề của mình lắm thì phải. Mình có các đường cong nối với nhau, nhưng mình muốn tìm cánh tuyến của nó.


???????? Cách mình bảo bạn chính là đi tìm cánh tuyến của các đường cong còn gì nữa
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#10 minhnghi

minhnghi

    biết vẽ arc

  • Members
  • PipPip
  • 41 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 27 June 2009 - 10:58 PM

Dưới dòng Code :
(defun c:gt( / ent obj dai pt1 pt2 ang1 ang2)
Bạn thêm dòng : (vl-load-com)

Thanks các bác rất nhiều, lúc đầu em sử dụng lisp đó trong cad 2008 không đc, nhưng dùng cho 2004 thì lại ok, sau khi thêm đoạn code dùng ok rùi. Xin hỏi bác Thaistreet có phải ngày xưa làm ở HDCI cùng chỗ anh Quân không nhỉ, bác có nhớ thằng ngồi cạnh bác làm giao thông không.
  • 0
- Gà con vẽ CAD -

#11 meomay

meomay

    biết vẽ line

  • Members
  • PipPip
  • 21 Bài viết
Điểm đánh giá: 6 (bình thường)

Đã gửi 28 July 2009 - 10:41 PM

Cái này chỉ là kiến thức hình học thuần tuý thôi mà.
Vẽ 2 đường line từ tâm đường tròn tới các điểm tiếp xúc đó (TĐ,TC)
Vẽ các đường vuông góc với các đường vừa vẽ.
Move chúng tới các điểm tiếp xúc. thế là xong.
  • 0