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

[Help] Viết dùm em cái Lisp ASD với

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

Tình hình là em có 1 đoạn lisp ASD, Lisp này có công dụng rãi cốt đai trên dầm. Bác nào giúp e hoàn thành nó với, vì em chỉ có đoạn code chính thôi

CODE: http://www.cadviet.com/upfiles/3/66879_new_text_document.txt

(setq
pa (getpoint "\nDiem dau : " )
pb (getpoint pa "\n Diem cuoi : " )
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh)
)
(if a_pb null (setq a_pb 150.0))
(setq
num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0)
 
(setq
pa (getpoint "\nDiem dau : " )
pb (getpoint pa "\n Diem cuoi : " )
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh)
)
(if a_pb null (setq a_pb 150.0))
(setq
num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0)
 
(setq
pa (getpoint "\nDiem dau : " )
pb (getpoint pa "\n Diem cuoi : " )
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh)
)
(if a_pb null (setq a_pb 150.0))
(setq
num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0)
)
(setq
pa (getpoint "\nDiem dau : " )
pb (getpoint pa "\n Diem cuoi : " )
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh)
)
(if a_pb null (setq a_pb 150.0))
(setq
num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0)
)
(setq
pa (getpoint "\nDiem dau : " )
pb (getpoint pa "\n Diem cuoi : " )
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh)
)
(if a_pb null (setq a_pb 150.0))
(setq
num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0)
)

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ử cái này.

 

(defun c:tmp()
  (setq  pa  (getpoint "\nDiem dau : ")
pb  (getpoint pa "\n Diem cuoi : ")
a_pb   (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc  (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
  (if a_pb  null  (setq a_pb 150.0))
  (setq  num_kc     (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
  
  (prompt "\nChon thep de copy:")
  (setq ss (ssget)
pt (getpoint "\nDiem goc cua thep:")
ang (angle pa pb)
n -1
os (getvar 'osmode))
  (mapcar 'setvar '(osmode cmdecho) '(0 0))
  (repeat (1+ num_kc)
    (command "copy" ss "" pt (polar pa ang (+ cd_dau_mut (* (setq n (1+ n)) a_pb)))))
  (mapcar 'setvar '(osmode cmdecho) (list os 1))
  (princ)
)

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ám ơn anh nhiều. Lisp rãi cốt đai theo đoạn. Vd: đoạn l/4 là 100mm, l/2 là 200mm, lisp đó dựa trên lisp này viết dc ko a? Mong a giúp đở, e cám ơn 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

Rải theo L/2 L/4 :

 

(defun c:tmp1()
  (setq  pa  (getpoint "\nDiem dau : ")
pb  (getpoint pa "\n Diem cuoi : ")
a_pb   (getreal "\nKhoang cach rai doan L/4 (mm) : <100>")
abv_canh 50.0
cd_thuc  (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
  (if a_pb  null  (setq a_pb 100.0))
  (setq  num_kc     (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
  
  (prompt "\nChon thep de copy:")
  (setq ss (ssget)
pt (getpoint "\nDiem goc cua thep:")
ang (angle pa pb)
n1 0
n -1
os (getvar 'osmode))
  (mapcar 'setvar '(osmode cmdecho) '(0 0))
  (while (< n num_kc)
    (setq pt1 (polar pa ang (+ cd_dau_mut (* (setq n (1+ n)) a_pb))))
    (if (or (<= (distance pa pt1) (* 0.25 cd_thuc))
   (>= (distance pa pt1) (* 0.75 cd_thuc)))
      (command "copy" ss "" pt pt1)
      (if (= 1 (setq n1 (abs (1- n1))))
(command "copy" ss "" pt pt1))))
  (mapcar 'setvar '(osmode cmdecho) (list os 1))
  (princ)
)

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  

×