NicoV 发表于 2022-7-6 06:48:33

带2个箭头的样条曲线

大家好,
 
我是新来的,对不起,如果来错地方了。
我想知道是否有人可以告诉我一个Lisp的正确方向,它可以在当前层中创建一个样条线,在样条线的两侧都有一个箭头(见所附示例)
直到现在,我总是用引线创建它,并在样条曲线的另一侧手动添加了第二个箭头,但我必须经常这样做,所以我正在寻找一个lisp可以做到这一点。
 
有人知道吗?
 
提前感谢
 
干杯
 
尼科夫

Tharwat 发表于 2022-7-6 07:18:12

欢迎来到CadTutor
 
这有什么帮助吗?
 



(defun c:Test (/ s e st nd le ds)
;;; Tharwat 19. 03. 2013 ;;;
(if (and (setq s (car (entsel "\n Select spline :")))
          (eq (cdr (assoc 0 (setq e (entget s)))) "SPLINE")
   )
   (progn
   (setq st (cdr (assoc 10 e))
         nd (cdr (assoc 11 (reverse e)))
         le (vlax-curve-getdistatpoint s nd)
         ds (/ le 50.)
   )
   (entmakex (list '(0 . "LWPOLYLINE")
                     '(100 . "AcDbEntity")
                     '(100 . "AcDbPolyline")
                     '(90 . 2)
                     '(70 . 0)
                     (cons 10 st)
                     '(40 . 0.0)
                     (cons 41 ds)
                     '(42 . 0.0)
                     (cons 10 (vlax-curve-getpointatdist s ds))
                     (cons 40 ds)
                     (cons 41 ds)
                     '(42 . 0.0)
                     (assoc 8 e)
               )
   )
   (entmakex
       (list '(0 . "LWPOLYLINE")
             '(100 . "AcDbEntity")
             '(100 . "AcDbPolyline")
             '(90 . 2)
             '(70 . 0)
             (cons 10 nd)
             '(40 . 0.0)
             (cons 41 ds)
             '(42 . 0.0)
             (cons 10 (vlax-curve-getpointatdist s (- le ds)))
             (cons 40 ds)
             (cons 41 ds)
             '(42 . 0.0)
             (assoc 8 e)
       )
   )
   )
)
(princ)
)

NicoV 发表于 2022-7-6 07:38:43

嗨,塔瓦,
 
这太完美了。
 
谢谢,
 
干杯
 
尼科夫

Tharwat 发表于 2022-7-6 08:08:38

 
尼科夫,随时欢迎你。
页: [1]
查看完整版本: 带2个箭头的样条曲线