Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp vẽ đường cong CYCLOID và TROCHOID


  • Please log in to reply
1 reply to this topic

#1 nguyenkhoadng

nguyenkhoadng

    biết vẽ line

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

Đã gửi 01 September 2011 - 09:35 PM

Mình đã tìm lisp này nhưng không thấy. Mình có tìm được tài liệu của BKDN hướng dẫn nhưng mình ko biết về viết lisp, copy vào thì ko dùng đc.
Nhờ các bạn trên cadviet viết giúp lisp này. hoặc xem lại hộ mình cái lisp này.
Mình cảm ơn!
(defun C:CYTROID ()
(princ
"\nDAY LA CHUONG TRINH VE DUONG CONG CYCLOID VA TROCHOID"
(
(setq echo (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 4287)
(setq Osm (getvar "osmode")
Ort (getvar "orthomode")
(
(setq org (getpoint "\nNhap goc cua he truc toa do: ")
(
(command "UCS" "N" org)
(setq an (getdist "\nNhap goc quay cua he truc toa do quanh truc Z <0>: " )
(
(command "UCS" "Z" an)
(setq a (getdist "\nNhap ban kinh duong tron lan: ")
(
(setq P1 (polar '(0 0) (/ pi 2) a)
(
(initget 1)
(setq ang (getint "\nNhap goc quay cua ban kinh duong tron lan: ")
(
(setq goc 0.0)
(setvar "orthomode" 0)
(command "undo" "be")
(command "Viewres" "" 5000)
(command "color" 1)
(setvar "osmode" 0)
(defun dtr (x) (* x (/ pi 180)))
(defun CYCLO ()
(command "spline")
(repeat Ang
(setq X (* a
(- (/ (* pi goc) 180)
(sin (dtr goc))
(
(
(
(setq Y (* a
(- 1
(cos (dtr goc))
(
(
(
(setq goc (+ goc 1))
(setq Toado (list X Y))
(command Toado)
(
(setq X (* a
(- (/ (* pi goc) 180)
(sin (dtr goc))
(
(
(
(setq Y (* a
(- 1
(cos (dtr goc))
(
(
(
(setq Toado (list X Y))
(command Toado)
(command "" "" "")
(Command "Circle" P1 a)
(command "line" '(0 0) P1 "")
);K?t thúc defun1
(defun TROCHO ()
(setq b (getdist
"\nNhap khoang cach diem bat dau tao duong trochoid toi tam duong tron lan: ")
P2 (polar P1 (- (* 0.5 pi)) B)
(
(command "spline")
(repeat Ang
(setq X (- (* a
(/ (* pi goc) 180)
(
(* b
(sin (dtr goc)
(
(
(
(setq Y (- a
(* b
(cos (dtr goc) )
(
(
(
(setq goc (+ goc 1))
(setq Toado (list X Y))
(command Toado)
(
(setq X (- (* a
(/ (* pi goc) 180)
(
(* b
(sin (dtr goc))
(
(
(
(setq Y (- a
(* b
(cos (dtr goc))
(
(
(
(setq Toado (list X Y))
(command Toado)
(command "" "" "")
(Command "Circle" P1 a)
(command "line" P1 P2 "")
);K?t thúc defun2
(initget 1 "Cycloid Trochoid eXit")
(Setq CT (getkword "\nNhap mot tuy chon [Cycloid/Trochoid/eXit]: ")
(
(Cond
((= "Cycloid" CT) (CYCLO))
((= "Trochoid" CT) (TROCHO))
((= "eXit" CT)
(princ "\nThoat chuong trinh")
(
(
(command "Regen")
(command "Zoom" "all")
(command "ucs" "")
(command "undo" "e")
(setvar "osmode" osm)
(setvar "orthomode" ort)
(setvar "cmdecho" echo)
(princ)
); Ket thuc chuong trinh

  • -1

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5684 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 01 September 2011 - 09:58 PM

Mình k biết nó thực hiện như thế nào, chỉ thấy những chỗ đáng ra đóng ngoặc thì nó lại thành mở ngoặc, sửa lại cho bạn cho đúng cú pháp thôi ^^
(defun C:CYTROID ()
(princ "\nDAY LA CHUONG TRINH VE DUONG CONG CYCLOID VA TROCHOID")
(setq echo (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 4287)
(setq Osm (getvar "osmode")
Ort (getvar "orthomode")
org (getpoint "\nNhap goc cua he truc toa do: ")
)
(command "UCS" "N" org)
(setq an (getdist "\nNhap goc quay cua he truc toa do quanh truc Z <0>: " ))
(command "UCS" "Z" an)
(setq a (getdist "\nNhap ban kinh duong tron lan: ")
P1 (polar '(0 0) (/ pi 2) a))
(initget 1)
(setq ang (getint "\nNhap goc quay cua ban kinh duong tron lan: ")
goc 0.0)
(setvar "orthomode" 0)
(command "undo" "be")
(command "Viewres" "" 5000)
(command "color" 1)
(setvar "osmode" 0)
(defun dtr (x) (* x (/ pi 180)))
(defun CYCLO ()
(command "spline")
(repeat Ang
(setq X (* a (- (/ (* pi goc) 180) (sin (dtr goc))))
Y (* a (- 1(cos (dtr goc))))
goc (+ goc 1)
Toado (list X Y)
)
(command Toado)
)
(setq X (* a (- (/ (* pi goc) 180) (sin (dtr goc)))))
(setq Y (* a
(- 1
(cos (dtr goc))
)))
(setq Toado (list X Y))
(command Toado)
(command "" "" "")
(Command "Circle" P1 a)
(command "line" '(0 0) P1 "")
);K?t thúc defun1
(defun TROCHO ()
(setq b (getdist
"\nNhap khoang cach diem bat dau tao duong trochoid toi tam duong tron lan: ")
P2 (polar P1 (- (* 0.5 pi)) B)
)

(command "spline")
(repeat Ang
(setq X (- (* a (/ (* pi goc) 180)
)
(* b
(sin (dtr goc)))))

(setq Y (- a
(* b
(cos (dtr goc) )
)))
(setq goc (+ goc 1))
(setq Toado (list X Y))
(command Toado)
)
(setq X (- (* a
(/ (* pi goc) 180)
)
(* b
(sin (dtr goc))
)))
(setq Y (- a
(* b
(cos (dtr goc))
)))
(setq Toado (list X Y))
(command Toado)
(command "" "" "")
(Command "Circle" P1 a)
(command "line" P1 P2 "")
);K?t thúc defun2
(initget 1 "Cycloid Trochoid eXit")
(Setq CT (getkword "\nNhap mot tuy chon [Cycloid/Trochoid/eXit]: "))
(Cond
((= "Cycloid" CT) (CYCLO))
((= "Trochoid" CT) (TROCHO))
((= "eXit" CT)
(princ "\nThoat chuong trinh")
)
)
(command "Regen")
(command "Zoom" "all")
(command "ucs" "")
(command "undo" "e")
(setvar "osmode" osm)
(setvar "orthomode" ort)
(setvar "cmdecho" echo)
(princ)
)

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC