本帖最后由 作者 于 2005-10-22 20:48:26 编辑
;请用以下程序
;提取曲线等分段点坐标并存盘 ;等分数可突破“Measure“及“Divide”命令最大数32767的限制 ;在盘结果为:点编号 X Y,在盘后立即用记事本后打开该文件 (defun c:qxcl() (vl-load-com) (setq cm (getvar "cmdecho") om (getvar "osmode")) (setvar "cmdecho" 0) (setvar "osmode" 0) (setq ff (open (setq wjm (getfiled "请选择等分点数据存盘文件" "" "txt" 1)) "w") en (car (entsel "\n请选择要等分段的曲线:")) n (getint "\n请输入等分数<100>:") nx (getint "\n请输入要保留的小数位数<3>:") ) (if (= n nil) (setq n 100)) (if (= nx nil) (setq nx 3)) (command "lengthen" en "") (setq vob (vlax-ename->vla-object en) l (getvar "perimeter") dis (/ l n) i 0 ) (repeat (1+ n) (setq pt (vlax-curve-getpointatdist vob (* i dis)) i (1+ i)) (princ (strcat (itoa i) " " (rtos (car pt) 2 nx) " " (rtos (cadr pt) 2 nx) "\n") ff ) ) (close ff) (startapp "notepad" wjm) (setvar "cmdecho" cm) (setvar "osmode" om) (princ) ) |