Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

(Nhờ Viết Lisp) Lisp Vẽ Gân


  • Please log in to reply
3 replies to this topic

#1 pdt

pdt

    Chưa sử dụng CAD

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

Đã gửi 24 July 2017 - 10:47 AM

Chào các bác!

 

Hiện nay em đang gặp vấn đề về vẽ cái gân tròn (trong file CAD) 

http://www.cadviet.c...do_ve_gan_1.dwg

 

Cái gân tròn chia làm nhiều phần với đường kính trong khác nhau ( các bác xem file CAD giùm em)

 

em phải vẽ để cắt CNC nhưng mà nhiều đường kính trong qua em vẽ không nổi. Mong các bác giúp đỡ em.

 

em cảm ơn!

P/S: Lần đầu em đăng bài có sai sót các bác chỉnh giúp


  • 0

#2 cuongtk2

cuongtk2

    biết lệnh mirror

  • Members
  • PipPipPip
  • 150 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 24 July 2017 - 02:56 PM

Đây:
(defun c:test ( / r1 r2 p1 gan ang goc1 goc2 goc11 goc21 p1a p1b p2a p2b i)
(defun asin (y)
(atan y (sqrt (- 1 (* y y))))
)
(setq
r2 (getreal "\n Ban kinh trong G:")
r1 (getreal "\n Do day thanh ong A:")
r1 (+ r1 r2)
n (getint "\n So luong gan:")
gan (getreal "\n Day gan:")
ang (/ (* pi 2) n)
;ang (+ ang (* pi 0.5))
p1 (getpoint "\n Diem dat:")
i 0
)

(while (< i n)
(progn
(setq
goc1 (+ (* ang i)(asin (/ gan (* r1 2))))
goc11 (- (* ang (+ i 1))(asin (/ gan (* r1 2))))

goc2 (+ (* ang i)(asin (/ gan (* r2 2))))
goc21 (- (* ang (+ i 1))(asin (/ gan (* r2 2))))

p1a (polar p1 goc1 r1)

p1b (polar p1 goc2 r2)

p2a (polar p1 goc11 r1)
p2b (polar p1 goc21 r2))
(entmake (list (cons 0 "LINE") (cons 10 p1a) (cons 11 p1b)))
(entmake (list (cons 0 "LINE") (cons 10 p2a) (cons 11 p2b)))
(entmake (list (cons 0 "ARC") (cons 10 p1) (cons 40 r1)(cons 50 goc1) (cons 51 goc11) ))
(entmake (list (cons 0 "ARC") (cons 10 p1) (cons 40 r2)(cons 50 goc2) (cons 51 goc21) ))
)
(setq i (1+ i))
)
(entmake (list (cons 0 "LINE")
(cons 8 "Center line")
(cons 10 (polar p1 0 (+ r1 100)))
(cons 11 (polar p1 pi (+ r1 100)))
))
(entmake (list (cons 0 "LINE")
(cons 8 "Center line")
(cons 10 (polar p1 (* pi 0.5) (+ r1 100)))
(cons 11 (polar p1 (* pi 1.5) (+ r1 100)))
))
)
  • 1

#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 25 July 2017 - 05:17 AM

Chào các bác!

 

Hiện nay em đang gặp vấn đề về vẽ cái gân tròn (trong file CAD) 

http://www.cadviet.c...do_ve_gan_1.dwg

 

Cái gân tròn chia làm nhiều phần với đường kính trong khác nhau ( các bác xem file CAD giùm em)

 

em phải vẽ để cắt CNC nhưng mà nhiều đường kính trong qua em vẽ không nổi. Mong các bác giúp đỡ em.

 

em cảm ơn!

P/S: Lần đầu em đăng bài có sai sót các bác chỉnh giúp

 

Bạn cũng có thể dùng lệnh REgion và lệnh Subtract

Subtract : Region hình tròn lớn trừ Region hình tròn nhỏ và trừ các Region đường gân


  • 1

#4 pdt

pdt

    Chưa sử dụng CAD

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

Đã gửi 30 July 2017 - 10:45 PM

Đây:
(defun c:test ( / r1 r2 p1 gan ang goc1 goc2 goc11 goc21 p1a p1b p2a p2b i)
(defun asin (y)
(atan y (sqrt (- 1 (* y y))))
)
(setq
r2 (getreal "\n Ban kinh trong G:")
r1 (getreal "\n Do day thanh ong A:")
r1 (+ r1 r2)
n (getint "\n So luong gan:")
gan (getreal "\n Day gan:")
ang (/ (* pi 2) n)
;ang (+ ang (* pi 0.5))
p1 (getpoint "\n Diem dat:")
i 0
)

(while (< i n)
(progn
(setq
goc1 (+ (* ang i)(asin (/ gan (* r1 2))))
goc11 (- (* ang (+ i 1))(asin (/ gan (* r1 2))))

goc2 (+ (* ang i)(asin (/ gan (* r2 2))))
goc21 (- (* ang (+ i 1))(asin (/ gan (* r2 2))))

p1a (polar p1 goc1 r1)

p1b (polar p1 goc2 r2)

p2a (polar p1 goc11 r1)
p2b (polar p1 goc21 r2))
(entmake (list (cons 0 "LINE") (cons 10 p1a) (cons 11 p1b)))
(entmake (list (cons 0 "LINE") (cons 10 p2a) (cons 11 p2b)))
(entmake (list (cons 0 "ARC") (cons 10 p1) (cons 40 r1)(cons 50 goc1) (cons 51 goc11) ))
(entmake (list (cons 0 "ARC") (cons 10 p1) (cons 40 r2)(cons 50 goc2) (cons 51 goc21) ))
)
(setq i (1+ i))
)
(entmake (list (cons 0 "LINE")
(cons 8 "Center line")
(cons 10 (polar p1 0 (+ r1 100)))
(cons 11 (polar p1 pi (+ r1 100)))
))
(entmake (list (cons 0 "LINE")
(cons 8 "Center line")
(cons 10 (polar p1 (* pi 0.5) (+ r1 100)))
(cons 11 (polar p1 (* pi 1.5) (+ r1 100)))
))
)

Em cảm ơn bác nhiều!


  • 0