kevinzhang 发表于 2008-2-1 09:01:00

求助能否把椭圆变成SPLINE线?

<p>在cad中能否把生成的椭圆变成SPLINE线呀?谢谢!</p>

ketxu 发表于 2020-1-8 18:50:26

本帖最后由 ketxu 于 2020-1-8 18:53 编辑

You can use this, quick code
(defun c: e2s (/ v s e d)
; @ketxu Nguyen Son Tung
        (setq s (ssget (list (cons 0 "ELLIPSE")))) i -1 v vlax-invoke d 0.000001)
        (while (setq e (ssname s ( setq i (1+ i)))))
                (v (setq vs (car (v (vlax-ename-> vla-object e) 'Offset d)))' Offset (-d))
                (entdel e)
                (vla- delete vs)
        )       
)

寒潮大冬瓜 发表于 2024-8-21 23:26:05

ketxu 发表于 2020-1-8 18:50
You can use this, quick codete2003-8-26样条曲线spline转换成多段线pline明经shicai发表于2003-8-26
看看是不是这样?

寒潮大冬瓜 发表于 2024-8-21 23:11:25

水仙的错 发表于 2019-9-14 13:58
不能用,怎么回事

试了确实不能实现哟!还辛苦ZZXXQQ大侠看看?

ZZXXQQ 发表于 2008-2-1 20:37:00



;椭圆转SPLINE 明经 ZZXXQQ 2008.2.1
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE"))
(if (and (setq s1 (entsel "\nSelect a Ellipse 选择椭圆 :"))
          (setq ent (entget(car s1)))
          (= (cdr(assoc 0 ent)) "ELLIPSE")
) (progn
(command ".undo" "BE")
(command "divide" s1 16)
(setq p1 (cdr(assoc 10 ent))
      p2 (cdr(assoc 11 ent))
      p2 (polar p1 (angle '(0 0) p2) (distance '(0 0) p2))
      p3 (polar p2 (+ (angle p1 p2) (/ pi -2)) 5))
(setq ss (ssget "P"))
(setq pt (cdr(assoc 10 (entget(ssname ss 0)))))
(setq i 0)
(setvar "OSMODE" 0)
(command ".spline" pt)
(repeat (1- (sslength ss))
   (setq pt (cdr(assoc 10 (entget(ssname ss (setq i (1+ i)))))))
   (command pt)
)
(command "c" p3)
(setvar "OSMODE" oldos)
(command ".erase" ss (car s1) "")
(command ".undo" "E")
))
(setvar "CMDECHO" 1)
(princ)
)

samshs 发表于 2008-12-31 18:56:00

實用!學習一下

havpower 发表于 2011-5-19 21:42:11

谢谢分享,看看代码。。

yoyoho 发表于 2011-5-20 08:04:12

感谢Z版分享程序!

水仙的错 发表于 2019-9-14 13:58:30

不能用,怎么回事

菜冬瓜 发表于 2023-5-20 20:42:28

ZZXXQQ 发表于 2008-2-1 20:37


感谢Z版分享程序!
页: [1] 2
查看完整版本: 求助能否把椭圆变成SPLINE线?