Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
pdt

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

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

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.com/upfiles/7/161898_giup_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

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

Đâ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)))

))

)

  • 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

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.com/upfiles/7/161898_giup_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

  • 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

Đâ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!

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  

×