Tharwat 发表于 2022-7-6 09:35:18

我觉得有点无聊,于是想出了这样的点子,希望它能满足你的需求。
 

(defun c:TesT (/ p1 p2 pcs d ang b c pt1 pt2)
;; Tharwat 14. Oct. 2011 ;;
(if
   (and
   (setq p1 (getpoint "\n Specify start point of line :"))
   (setq p2 (getpoint p1 "\n Specify end point of line :"))
   (setq pcs (getint "\n Specify number of part :"))
   )
    (progn
      (setq d (distance p1 p2))
      (setq ang (angle p1 p2))
      (setq b (* (/ (/ d pcs) 15.) 12.))
      (setq c (* (/ (/ d pcs) 15.) 3.))
      (setq pt1 (polar p1 ang b))
      (setq pt2 (polar pt1 ang c))
      (repeat pcs
      (command "_.arc" "_non" p1 "_e" "_non" pt1 "_angle" 180.)
      (command "_.arc" "_non" pt1 "_e" "_non" pt2 "_angle" -180.)
      (setq p1pt2
            pt1 (polar p1 ang b)
            pt2 (polar pt1 ang c)
      )
      )
    )
    (princ)
)
(princ)
)

 
塔瓦特

BIGAL 发表于 2022-7-6 09:38:59

我没有看到第二页的一个变化,我有5个在一个Lisp程序不同的风格大提示OP“绝缘打击”

teknomatika 发表于 2022-7-6 09:47:56

塔尔瓦特,
 
谢谢你的帮助。
这是一个很大的帮助。我添加了元素来定义拱门之间的比例关系。
这是我想要的一个很好的解决方案,尽管我更喜欢根据每个元素的半径而不是零件的数量来定义控件。
但感谢所有帮助我的人。
 
(defun c:teste1 (/ p1 p2 pcs d ang b c pt1 pt2)
;; Tharwat 14. Oct. 2011 ;;

(setq s1 (getreal "\n size 1 :"))
(setq s2 (getreal "\n size 2 :"))

(if
   (and
   (setq p1 (getpoint "\n Specify start point of line :"))
   (setq p2 (getpoint p1 "\n Specify end point of line :"))
   (setq pcs (getint "\n Specify number of part :"))
   )
    (progn
      (setq d (distance p1 p2))
      (setq ang (angle p1 p2))
      (setq b (* (/ (/ d pcs) 15.) s1))
      (setq c (* (/ (/ d pcs) 15.) s2))
      (setq pt1 (polar p1 ang b))
      (setq pt2 (polar pt1 ang c))
      (repeat pcs
      (command "_.arc" "_non" p1 "_e" "_non" pt1 "_angle" 180.)
      (command "_.arc" "_non" pt1 "_e" "_non" pt2 "_angle" -180.)
      (setq p1pt2
            pt1 (polar p1 ang b)
            pt2 (polar pt1 ang c)
      )
      )
    )
    (princ)
)
(princ)
)

Tharwat 发表于 2022-7-6 09:52:33

 
不客气,我真的很高兴你喜欢这个主意。
 
塔瓦特
页: 1 [2]
查看完整版本: 复杂的线条