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

Lisp vẽ đường hàn

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

Bác hoành hướng dẫn cho em sử dụng cái lisp này với .Em đã load xong ,thực hiện các bước trong command mà kết quả không ra như ý:

(defun C:hh()
  (setq P1 (getpoint p1 "\nDiem dau : "))
  (setq P2 (getpoint p1 "\nDiem cuoi : "))
  (setq P3 (getpoint p1 "\nPhia co duong han : "))
  (setq  l (getdist p1  "\nChieu cao duong han : "))
  (setq goc (angle p1 p2))

  (setq xA (car P1))
  (setq yA (cadr P1))
  (setq xB (car P2))
  (setq yB (cadr P2))
  (setq xC (car P3))
  (setq yC (cadr P3))

  (setq dau (- (* (- xC xA) (- yB yA))
               (* (- xB xA) (- yC yA))
            )
  )

  (setq n (distance P1 P2))

  (setq x1 (- xA (* l (cos goc))))
  (setq y1 (- yA (* l (sin goc))))

  (While (> n 0)
     (setq x1 (+ x1 (* l (cos goc))))
     (setq y1 (+ y1 (* l (sin goc))))

     (setq x2 (- x1 (* l (sin goc))))
     (setq y2 (+ y1 (* l (cos goc))))

     (setq x3 (+ x1 (* l (sin goc))))
     (setq y3 (- y1 (* l (cos goc))))

     (setq dau2 (- (* (- x2 xA) (- yB yA))
                   (* (- xB xA) (- y2 yA))
                )
     )

     (if (> (* dau2 dau) 0)       
       (command "line" (list x1 y1) (list x2 y2) "")
       (command "line" (list x1 y1) (list x3 y3) "")
     )
     (setq n (- n l))
  ) ;of while
); of defune

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
Bác hoành hướng dẫn cho em sử dụng cái lisp này với .Em đã load xong ,thực hiện các bước trong command mà kết quả không ra như ý:

(defun C:hh()
  (setq P1 (getpoint p1 "\nDiem dau : "))
  (setq P2 (getpoint p1 "\nDiem cuoi : "))
  (setq P3 (getpoint p1 "\nPhia co duong han : "))
  (setq  l (getdist p1  "\nChieu cao duong han : "))
  (setq goc (angle p1 p2))

  (setq xA (car P1))
  (setq yA (cadr P1))
  (setq xB (car P2))
  (setq yB (cadr P2))
  (setq xC (car P3))
  (setq yC (cadr P3))

  (setq dau (- (* (- xC xA) (- yB yA))
               (* (- xB xA) (- yC yA))
            )
  )

  (setq n (distance P1 P2))

  (setq x1 (- xA (* l (cos goc))))
  (setq y1 (- yA (* l (sin goc))))

  (While (> n 0)
     (setq x1 (+ x1 (* l (cos goc))))
     (setq y1 (+ y1 (* l (sin goc))))

     (setq x2 (- x1 (* l (sin goc))))
     (setq y2 (+ y1 (* l (cos goc))))

     (setq x3 (+ x1 (* l (sin goc))))
     (setq y3 (- y1 (* l (cos goc))))

     (setq dau2 (- (* (- x2 xA) (- yB yA))
                   (* (- xB xA) (- y2 yA))
                )
     )

     (if (> (* dau2 dau) 0)       
       (command "line" (list x1 y1) (list x2 y2) "")
       (command "line" (list x1 y1) (list x3 y3) "")
     )
     (setq n (- n l))
  ) ;of while
); of defune

 

Ý nghĩa của các câu hỏi mà lisp hiển thị:

- Diem dau : là điểm bắt đầu đường hàn

- Diem cuoi: Là điểm cuối cùng của đường hàn

- Phia co duong han: phía có đường hàn

- Chieu cao duong han: Chiều cao của đường hàn

Quá dễ để hiểu, không rõ là bạn thắc mắc ở điểm nào?

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
Ý nghĩa của các câu hỏi mà lisp hiển thị:

- Diem dau : là điểm bắt đầu đường hàn

- Diem cuoi: Là điểm cuối cùng của đường hàn

- Phia co duong han: phía có đường hàn

- Chieu cao duong han: Chiều cao của đường hàn

Quá dễ để hiểu, không rõ là bạn thắc mắc ở điểm nào?

Thì em cũng biết là như thế :comand viết bằng tiếng anh còn hiểu nữa là tiếng việt !Nhưng thôi bác xem em làm thế này đúng hay sai ?

Load lisp ,sau đó tại comand gõ hh;tiếp đó chọn điểm đầu một đoạn thẳng ,sau đó chọn điểm cuối một đoạn thẳng ,sau đó kích vào một điểm bất kỳ ở một bên đường thằng (vì nó hỏi là phía của đường hàn ), sau đó nhập chiều cao đường hàn là 12mm. Ấn enter thì nó ra bao nhiêu đường thẳng chụm vào 2 cái điểm ta vừa chọn vào là điểm đầu và điểm cuối !Chả hiểu sao nữa ?Trong khi đó cái ta cần là một chuỗi các đường thẳng song song nhau có độ dài là 12mm .Mà hình như em thấy cái lisp này thiếu khoảng cách giữa các đường hàn hay sao ý !Bác biết bổ sung cho em với!Xin cảm ơn bác nhiều

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
Thì em cũng biết là như thế :comand viết bằng tiếng anh còn hiểu nữa là tiếng việt !Nhưng thôi bác xem em làm thế này đúng hay sai ?

Load lisp ,sau đó tại comand gõ hh;tiếp đó chọn điểm đầu một đoạn thẳng ,sau đó chọn điểm cuối một đoạn thẳng ,sau đó kích vào một điểm bất kỳ ở một bên đường thằng (vì nó hỏi là phía của đường hàn ), sau đó nhập chiều cao đường hàn là 12mm. Ấn enter thì nó ra bao nhiêu đường thẳng chụm vào 2 cái điểm ta vừa chọn vào là điểm đầu và điểm cuối !Chả hiểu sao nữa ?Trong khi đó cái ta cần là một chuỗi các đường thẳng song song nhau có độ dài là 12mm .Mà hình như em thấy cái lisp này thiếu khoảng cách giữa các đường hàn hay sao ý !Bác biết bổ sung cho em với!Xin cảm ơn bác nhiều

ở mục ch.cao dhàn bạn phải nhập số = (drawing unit).

Tức là nếu vẽ bằng tay thì bạn sẽ vẽ line nhỏ cho dhàn dài bao nhiêu (đơn vị vẽ) thì nhập số đó.

Theo mình đóan thì bạn muốn vẽ chcao dhàn =12mm thì fải nhập là "120" (nếu vẽ ở tỉ lệ 1/10).

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ục ch.cao dhàn bạn phải nhập số = (drawing unit).

Tức là nếu vẽ bằng tay thì bạn sẽ vẽ line nhỏ cho dhàn dài bao nhiêu (đơn vị vẽ) thì nhập số đó.

Theo mình đóan thì bạn muốn vẽ chcao dhàn =12mm thì fải nhập là "120" (nếu vẽ ở tỉ lệ 1/10).

Bạn ơi tớ đang vẽ ở tỷ lệ 1:1 mà!Tớ đang đoán là do lisp bị thiếu khoảng cách giữa các đường hàn nên nó mới thế !Không biết có đúng không?

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
Bạn ơi tớ đang vẽ ở tỷ lệ 1:1 mà!Tớ đang đoán là do lisp bị thiếu khoảng cách giữa các đường hàn nên nó mới thế !Không biết có đúng không?

thôi Bác tìm file khác mà xài, chứ mình thấy file này viết cũng lằn nhằn lắm.

Viết gì mà cứ sin với cos từa lưa hết.

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

;VE DUONG HAN

(defun c:hx ()

(setq om (getvar "osmode"))

(setq p1 (getpoint "\n Chon diem thu nhat:"))

(setq p2 (getpoint p1 "\n Chon diem thu hai:"))

(setq hstl 1)

(command "osnap" "none")

(setq a (angle p1 p2))

(setq l (distance p1 p2))

(setq n (fix (/ l hstl)))

(setq p3 (polar p1 a (/ (- l (* n hstl)) 2)) )

(repeat (+ n 1)

(progn (setq p4 (polar p3 (+ a (/ pi 2)) hstl))

(command "line" p3 p4 "")

(setq p3 (polar p3 a hstl))

)

)

(setvar "osmode" om)

)

 

 

(defun c:hc ()

(setq om (getvar "osmode"))

(setq p1 (getpoint "\n Chon diem thu nhat:"))

(setq p2 (getpoint p1 "\n Chon diem thu hai:"))

(setq hstl 1)

(command "osnap" "none")

(setq a (angle p1 p2))

(setq l (distance p1 p2))

(setq n (fix (/ l hstl 1.5)))

(setq p3 (polar p1 a (+ (/ (- l (* n hstl 1.5)) 2) (* 0.25 hstl)) ) )

(setq p4 (polar p3 (+ a (/ pi 2)) hstl))

(repeat n

(progn (setq p5 (polar p3 a hstl))

(setq p6 (polar p5 (+ a (/ pi 2)) hstl))

(command "line" p3 p6 "")

(command "line" p4 p5 "")

(setq p3 (polar p3 a (* 1.5 hstl)))

(setq p4 (polar p4 a (* 1.5 hstl)))

 

)

)

(setvar "osmode" om)

)

;-------------------------------------------------------------------------------------

Chú ý chỉnh dòng màu đỏ cho phù hợp.

1mm paper = (hstl) x (drawing unit)

tùy cách vẽ mà hstl có thể bằng 1 hoặc 100

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
;VE DUONG HAN

(defun c:hx ()

(setq om (getvar "osmode"))

(setq p1 (getpoint "\n Chon diem thu nhat:"))

(setq p2 (getpoint p1 "\n Chon diem thu hai:"))

(setq hstl 1)

(command "osnap" "none")

(setq a (angle p1 p2))

(setq l (distance p1 p2))

(setq n (fix (/ l hstl)))

(setq p3 (polar p1 a (/ (- l (* n hstl)) 2)) )

(repeat (+ n 1)

(progn (setq p4 (polar p3 (+ a (/ pi 2)) hstl))

(command "line" p3 p4 "")

(setq p3 (polar p3 a hstl))

)

)

(setvar "osmode" om)

)

 

 

(defun c:hc ()

(setq om (getvar "osmode"))

(setq p1 (getpoint "\n Chon diem thu nhat:"))

(setq p2 (getpoint p1 "\n Chon diem thu hai:"))

(setq hstl 1)

(command "osnap" "none")

(setq a (angle p1 p2))

(setq l (distance p1 p2))

(setq n (fix (/ l hstl 1.5)))

(setq p3 (polar p1 a (+ (/ (- l (* n hstl 1.5)) 2) (* 0.25 hstl)) ) )

(setq p4 (polar p3 (+ a (/ pi 2)) hstl))

(repeat n

(progn (setq p5 (polar p3 a hstl))

(setq p6 (polar p5 (+ a (/ pi 2)) hstl))

(command "line" p3 p6 "")

(command "line" p4 p5 "")

(setq p3 (polar p3 a (* 1.5 hstl)))

(setq p4 (polar p4 a (* 1.5 hstl)))

 

)

)

(setvar "osmode" om)

)

;-------------------------------------------------------------------------------------

Chú ý chỉnh dòng màu đỏ cho phù hợp.

1mm paper = (hstl) x (drawing unit)

tùy cách vẽ mà hstl có thể bằng 1 hoặc 100

 

Dùng lisp của bác rất tốt nhưng mà mỗi tội trong bản vẽ của em có các đường hàn với các chiêu cao khác nhau :6,8,12 mm nên cũng khó sử dụng !Em đang nghĩ hay là ta cứ kệ nhỉ?Thực ra khi in ra bản vẽ thì các chiều cao này cũng chả khác nhau là mấy!Ai mà phần biết được !Bác có nghĩ thế không?Hay nếu được bác giúp em sửa lại cái lisp của bác ,ta chỉ sửa cái chiều cao đường hàn thôi ,bác chỉ cho em chỗ sửa chiều cao đường hàn !Em sẽ cóp ra làm 3 bản ,mỗi bản tương ứng với một chiều cao đường hà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
Dùng lisp của bác rất tốt nhưng mà mỗi tội trong bản vẽ của em có các đường hàn với các chiêu cao khác nhau :6,8,12 mm nên cũng khó sử dụng !Em đang nghĩ hay là ta cứ kệ nhỉ?Thực ra khi in ra bản vẽ thì các chiều cao này cũng chả khác nhau là mấy!Ai mà phần biết được !Bác có nghĩ thế không?Hay nếu được bác giúp em sửa lại cái lisp của bác ,ta chỉ sửa cái chiều cao đường hàn thôi ,bác chỉ cho em chỗ sửa chiều cao đường hàn !Em sẽ cóp ra làm 3 bản ,mỗi bản tương ứng với một chiều cao đường hàn !

Không ai vẽ chdài đường line theo chcao đường hàn cả. Bởi vì đó chỉ là kí hiệu đường hàn thôi.

Nó chỉ cho biết là hàn kiểu gì thôi.

Còn nếu muốn vẽ theo chcao dhàn thì cũng sửa cái dòng màu đỏ đó.

nếu :

chcao dhàn 10mm tương ứng với hstl = 1 thì

12mm ------------- hstl = 1.2 thế thôi.

Hoặc

chcao dhàn 10mm tương ứng với hstl = 100 thì

12mm ------------- hstl = 120

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
Không ai vẽ chdài đường line theo chcao đường hàn cả. Bởi vì đó chỉ là kí hiệu đường hàn thôi.

Nó chỉ cho biết là hàn kiểu gì thôi.

Còn nếu muốn vẽ theo chcao dhàn thì cũng sửa cái dòng màu đỏ đó.

nếu :

chcao dhàn 10mm tương ứng với hstl = 1 thì

12mm ------------- hstl = 1.2 thế thôi.

Hoặc

chcao dhàn 10mm tương ứng với hstl = 100 thì

12mm ------------- hstl = 120

Cám ơn nô thiên nhiều nhé !Bạn còn lisp nào dùng để vẽ đồ án thép thì gửi lên cho mình nhé!Cảm ơn bạn rất nhiều!

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
Không ai vẽ chdài đường line theo chcao đường hàn cả. Bởi vì đó chỉ là kí hiệu đường hàn thôi.

Nó chỉ cho biết là hàn kiểu gì thôi.

Còn nếu muốn vẽ theo chcao dhàn thì cũng sửa cái dòng màu đỏ đó.

nếu :

chcao dhàn 10mm tương ứng với hstl = 1 thì

12mm ------------- hstl = 1.2 thế thôi.

Hoặc

chcao dhàn 10mm tương ứng với hstl = 100 thì

12mm ------------- hstl = 120

cho em hỏi là: nếu đường hàn của mình là tập hợp các đường cong cắt nhau thì làm sao hả mấy pro, ai biết có thể giúp em với , công ty em không kí hiệu đường hàn bằng nét gạch thẳng

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
cho em hỏi là: nếu đường hàn của mình là tập hợp các đường cong cắt nhau thì làm sao hả mấy pro, ai biết có thể giúp em với , công ty em không kí hiệu đường hàn bằng nét gạch thẳng

Có rât nhiều cách khác nhau:

bạn có thể tạo ra theo ý mình, dơn giản vô cùng

-cách 1: dùng lệnh Mesu (me) array đwờng hàn theo đwòng đa tuyến bất kí (

-Ccáh 2: ở 1 quyển cad bất kì, đều hwớng dẫn cách tạo ra 1 đwờng dạng

------------xxx -----xxx ---------xxxx

Hợc---||||---||||---|||||__

bạn đã bao giở thủ chua

-Cách 3: viết 1 đoạn lisp,

-Cách 4- tham khảo các cách của các PRo khác

  • 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
Có rât nhiều cách khác nhau:

bạn có thể tạo ra theo ý mình, dơn giản vô cùng

-cách 1: dùng lệnh Mesu (me) array đwờng hàn theo đwòng đa tuyến bất kí (

-Ccáh 2: ở 1 quyển cad bất kì, đều hwớng dẫn cách tạo ra 1 đwờng dạng

------------xxx -----xxx ---------xxxx

Hợc---||||---||||---|||||__

bạn đã bao giở thủ chua

-Cách 3: viết 1 đoạn lisp,

-Cách 4- tham khảo các cách của các PRo khác

quên nữa , mấy cách kia em vẫn đang sài , nhưng thấy cái đoạn lisp mối hàn này hay quá , nên hỏi xem có lisp mối hàn đường cong nào không ạ

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
quên nữa , mấy cách kia em vẫn đang sài , nhưng thấy cái đoạn lisp mối hàn này hay quá , nên hỏi xem có lisp mối hàn đường cong nào không ạ

 

ơ hay nhỉ, thì 2 cách đầu là vẽ đường hàn cho đoạn cong mà

bạn thử xem nhé

cái lệnh ME cũng đơn giản thôi mà

  • 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

Command: hh ; error: bad argument type: point: nil"

cac bac giup em voi sao lisp duong han nay bi loi ma cac lisp khac e dung van bt

<p class="ipsLikeBar right clearfix" id="rep_post_13786" style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; float: right; font-size: 11px; ">

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  

×