[LISP]我需要一个云形线转换为复线的程序
我想要一个能够直接将所选云形线换成复线的程序要求其曲率越接近越好
哪位大虾帮我 各位侠就请指点下吧 我曾用CAD的等分功能结合起来,但发现其曲率不能达到要求,而且处理起来比较慢
大侠能否指点一下啊!!! 各位:
你们真这么狠心,都不搭理一声
哎。。。。。 ;;分细一点也不能达到要求吗?
;;你的思路已对"等分功能",再用MLINE重画即可
;;By 龙龙仔(LUCAS)
;;临时改的,原来是SPLINE TO 3DPOLYLINE
(defun C:SP_TO_ML (/ HOLDECHO HOLDBLIP HOLDOSMODE A AA A1 F EPT SPT LP)
(vl-load-com)
(command "_.undo" "_group")
(setq HOLDECHO (getvar "cmdecho"))
(setq HOLDBLIP (getvar "blipmode"))
(setq HOLDOSMODE (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setvar "osmode" 0)
(while (/= AA "SPLINE")
(setq A (entsel "\n选取SPLINE: "))
(setq A1 (car A))
(setq AA (cdr (assoc 0 (entget A1))))
)
(setq SPT (vlax-curve-getstartpoint
(setq F (vlax-ename->vla-object A1))
)
)
(setq EPT (vlax-curve-getendpoint F))
(setq LP (getint "\n请设定段数/<60>: "))
(if (null LP)
(setq LP 60)
)
(command "_.UCS" "")
(command "_.divide" A1 (+ LP 1))
(setq A (ssget "p"))
(command "_.MLINE" EPT)
(repeat LP
(command (cdr (assoc 10 (entget (ssname A (- LP 1))))))
(setq LP (- LP 1))
)
(command SPT "")
(command "_.matchprop" A1 (entlast) "")
(command "_.erase" A A1 "")
(command "_.UCS" "P")
(setvar "blipmode" HOLDBLIP)
(setvar "osmode" HOLDOSMODE)
(command "_.undo" "_end")
(setvar "cmdecho" HOLDECHO)
(princ)
) Thanks for sharing ^^
页:
[1]