Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
3 replies to this topic

#1 kayomen

kayomen

    biết vẽ line

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

Đã gửi 23 May 2014 - 03:16 PM

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.c...xt_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)
)

  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 23 May 2014 - 06:37 PM

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

  • 0

#3 kayomen

kayomen

    biết vẽ line

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

Đã gửi 23 May 2014 - 09:03 PM

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
  • 0

#4 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 24 May 2014 - 07:57 AM

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

  • 0