SilverTiger 发表于 2022-7-6 07:47:09

有人能为t创建lisp吗

我不知道是否有人能做到,但它需要做的是:
 
一、 命令层次结构中有两种选择:黄金或互惠黄金
二、基于现有命令的绘图功能:
--A、 二维操作:
----1. 捕捉到点G或点I
----2. 将对象划分为G个段或I个段
----3. 长度和角度为G或I的直线、样条线、样条线、多边形、圆弧、圆、椭圆等,参考选项与另一形状适当比例
----4. 弧长g或I角度的极轴阵列选项。
--B、 三维操作:
----1. 挤出:G或I选项用于挤出高度;对数螺旋路径选项;锥角的G或I选项
----2. 通过键入螺旋线或绘制对数螺旋线的预定义参数
----3. 还有什么我没有想到的重要或相关的事情吗?
三、 模式
--A、 lisp的命令名应该是金色的
--B、 所有ACAD命令(如上述命令)应正常工作,但添加了G、I、R、S和LS选项。
 
这将是一件美好的事情!我非常感谢在这方面提供的任何帮助。

asos2000 发表于 2022-7-6 08:42:37

阅读此

Lee Mac 发表于 2022-7-6 09:08:00

两个非常简单的程序:

(defun c:spiral ( / i l s x )
   (setq s 0.0
         i (/ pi 25.0)
         x (exp (/ (log (/ (1+ (sqrt 5)) 2)) pi 0.5))
   )
   (repeat 50
       (setq l (cons (list 10 (* (cos s) (expt x s)) (* (sin s) (expt x s))) l)
             s (+ s i)
       )
   )
   (entmake
       (append
         (list
            '(0 . "LWPOLYLINE")
            '(100 . "AcDbEntity")
            '(100 . "AcDbPolyline")
            '(70 . 0)
               (cons 90 (length l))
         )
         l
       )
   )
   (command "_.zoom" "_E")
   (princ)
)
 
 

(defun c:3dspiral ( / c i n p s x )
   (setq s 0.0
         i (/ pi 25.0)
         x (exp (/ (log (/ (1+ (sqrt 5)) 2)) pi 0.5))
   )
   (entmake '((0 . "POLYLINE") (70 . ))
   (repeat 50
       (entmake
         (list
            '(0 . "VERTEX")
            '(70 . 32)
               (list 10 (* (cos s) (expt x s)) (* (sin s) (expt x s)) s)
         )
       )
       (setq s (+ s i))
   )
   (setq p (cdr (assoc 330 (entget (entmakex '((0 . "SEQEND"))))))
         n (mapcar '-
               (list (* (cos i) (expt x i)) (* (sin i) (expt x i)) i)
            '(1.0 0.0 0.0)
         )
   )
   (setq c
       (entmakex
         (list
            '(0 . "CIRCLE")
            '(40 . 0.2)
               (cons 10 (trans '(1.0 0.0 0.0) 0 n))
               (cons 210 n)
         )
       )
   )
   (command "_.extrude" c "" "_P" p "_.zoom" "_E")
   (princ)
)
页: [1]
查看完整版本: 有人能为t创建lisp吗