Chuyển đến nội dung
Diễn đàn CADViet
pfievxd

Vẽ vuông góc với 1 Pline bất kì

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

59 phút trước, phat1998 đã nói:

có phải em đang hiểu sai về cái ' (0,0) , đây là điểm thuộc UCS chứ ko phải WCS phải không ạ ?

Bạn có vẻ bị ám ảnh bởi cái điểm (0 0) nhỉ, thôi bây giờ bạn tìm góc tiếp tuyến tại  (x y) với điểm kế tiếp (x + dx, y + dy) cho nó dễ hiểu đi, trong đó (dx dy) tìm bởi cái hàm 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
1 giờ} trướ}c, alisp đã nói:

Bạn có vẻ bị ám ảnh bởi cái điểm (0 0) nhỉ, thôi bây giờ bạn tìm góc tiếp tuyến tại  (x y) với điểm kế tiếp (x + dx, y + dy) cho nó dễ hiểu đi, trong đó (dx dy) tìm bởi cái hàm trên.

cảm ơn anh nhiều ạ, em sẽ cố gắng hiểu cặn kẽ

vì em sắp bảo vệ tốt nghiệp, nên em cần hiểu kĩ để còn trả lời các thầ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
Vào lúc 13/11/2020 tại 09:32, Doan Van Ha đã nói:

'(0 0): tọa độ điểm có x=0 và y=0

anh cho em hỏi về hàm angle.

giả sử dùng hàm angle và chọn điểm thứ nhất là A điểm thứ 2 là B cho ra góc anpha1

                                               chọn điểm thứ nhất là B điểm thứ 2 là C cho ra góc anpha2

anpha1 khác anpha2

tức là vẫn là đường thẳgn AB nhưng góc thu được khác nhau do hướng của vector AB và BA ngươc nhau

vậy làm cách nào để ta luôn thu được góc giữa AB và 0x cố định với cả vector AB và BA ạ

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
15 phút trước, phat1998 đã nói:

anh cho em hỏi về hàm angle.

giả sử dùng hàm angle và chọn điểm thứ nhất là A điểm thứ 2 là B cho ra góc anpha1

                                               chọn điểm thứ nhất là B điểm thứ 2 là C cho ra góc anpha2

anpha1 khác anpha2

tức là vẫn là đường thẳgn AB nhưng góc thu được khác nhau do hướng của vector AB và BA ngươc nhau

vậy làm cách nào để ta luôn thu được góc giữa AB và 0x cố định với cả vector AB và BA ạ

Đã có 2 góc nên muốn chỉ nhận 1 giá trị thì bạn chọn (min (angle A B) (angle B A)) hoặc (max (angle A B) (angle B A)), hoặc bạn xét góc để trừ đi 1 giá trị là PI.

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
34 phút trước, Doan Van Ha đã nói:

Đã có 2 góc nên muốn chỉ nhận 1 giá trị thì bạn chọn (min (angle A B) (angle B A)) hoặc (max (angle A B) (angle B A)), hoặc bạn xét góc để trừ đi 1 giá trị là PI.

Ý em là với lisp và với 2 đường thẳng AB và BA chứ không phải là có 2 góc rồi lấy 1 góc duy nhất anh ạ. tức là với lisp đó đối tượng là AB hya là BA thì kết quả là 1 ý ạ

đây là lisp ạ:

 

(setvar "Osmode" 0)(Setvar "orthomode" 0)(setvar "cmdecho" 0)
(setq file_text  (getfiled "xuât du liêu " "gia công 1 chiêu "  "txt" 1))
(setq ket_qua (open file_text "w" )
        doi_tuong (car ( entsel " \n chon duong phun son  : "))
        so_doan (getint (strcat "\n nhâp vào môt sô : "))
        d 0.0
        L  (vlax-curve-getDistAtParam doi_tuong (vlax-curve-getEndParam doi_tuong)) 
       delta_L (/ L so_doan)
)
(setq diem (vlax-curve-getpointatdist doi_tuong d)
      dao_ham(vlax-curve-getFirstDeriv doi_tuong d)
      goc_tiep_tuyen (angle '( 0 0) dao_ham)
      goc_phap_tuyen ( *  (- (/ pi 2) goc_tiep_tuyen)(/ 180 pi))
      
)
(Princ (strcat "\nG02 X" (rtos (car diem) 2 0) " Y" (rtos (cadr diem) 2 0) " A" (rtos goc_phap_tuyen 2 0) ) ket_qua)
(setq d (+ d delta_L))
(repeat  ( 1+ (- so_doan 1))
   ( setq diem (vlax-curve-getPointAtDist doi_tuong d) 
      dao_ham (vlax-curve-getFirstDeriv doi_tuong d)
      goc_tiep_tuyen (angle '( 0 0) dao_ham)
      goc_phap_tuyen ( * (-  (/ pi 2) goc_tiep_tuyen)  (/ 180 pi))
       d (+ d delta_L)
)
    (Princ (strcat "\nG01 X" (rtos (car diem) 2 0) " Y" (rtos (cadr diem) 2 0) " A" (rtos goc_phap_tuyen 2 0)) ket_qua)
     )
  (close ket_qua)
  (Princ (strcat "\nFile Ket qua : \"" file_text "\"")) (princ)

  • Vote giảm 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
5 giờ trước, phat1998 đã nói:

Ý em là với lisp và với 2 đường thẳng AB và BA chứ không phải là có 2 góc rồi lấy 1 góc duy nhất anh ạ. tức là với lisp đó đối tượng là AB hya là BA thì kết quả là 1 ý ạ

đây là lisp ạ:

 

Ý bạn này chác muốn nói nếu đi từ đầu tới cuối đg cong hoặc đi ngược từ cuối lên đầu thì góc có giống nhau hay không đó mà, phải vậy ko?

Nếu đúng là như vậy thì xin thưa là tại 1 điểm trên đg cong thì góc là như nhau bạn nhé, chỉ có điều vị trí điểm đo và thứ tự đo sẽ khác nhau thôi, tức là đi xuôi vị trí điểm đo sẽ khác với khi đi ngược.

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
6 giờ trước, alisp đã nói:

Ý bạn này chác muốn nói nếu đi từ đầu tới cuối đg cong hoặc đi ngược từ cuối lên đầu thì góc có giống nhau hay không đó mà, phải vậy ko?

Nếu đúng là như vậy thì xin thưa là tại 1 điểm trên đg cong thì góc là như nhau bạn nhé, chỉ có điều vị trí điểm đo và thứ tự đo sẽ khác nhau thôi, tức là đi xuôi vị trí điểm đo sẽ khác với khi đi ngược.

vâng ạ. từ đầu đến cuối góc khác từ cuối lên đầu ạ, mong anh cho giải pháp

tiện thể cho em hỏi thêm, như lisp của em kia thì trình bày thuật toán của nó dạng sơ đồ khối như thế nào ạ. 

em cảm ơn các anh !

 

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

×