![]() |
为什么不行呀,各位老大,替换pl的点
为什么不行呀,各位老大,替换pl的点
www.dimcax.com 为什么不行呀,各位老大,替换pl的点;| 程序功能:通过知道图元的一个索引号和一个新点,来替换该索引号点的位置 |; (defun ko-updated-plinepoint (ena index point / acadobject acaddocument oldpoint newpoint) (vl-load-com) (setq acadobject (vlax-get-acad-object) acaddocument (vla-get-activedocument acadobject) mspace (vla-get-modelspace acaddocument) vla (vlax-ename->vla-object ena) oldpoint (vla-get-coordinate vla index) newpoint (vlax-3d-point point) ) (vla-put-coordinate vla index newpoint) (vla-update vla) ) d 错误: automation 错误。 安全数组中的元素数目不正确 d ;| 程序功能:通过知道图元的一个索引号和一个新点,来替换该索引号点的位置 |; (defun ko-updated-plinepoint (ena index pointlst / newpoint vla pointlst) (if (wcmatch (dxf 0 (entget ena)) "*polyline") (progn (vl-load-com) (setq newpoint (vlax-make-safearray vlax-vbdouble '(0 . 1)) vla (vlax-ename->vla-object ena) ) (if (= (dxf 0 (entget ena)) "lwpolyline") (progn (if (= (length pointlst) 3) (setq pointlst (!last pointlst))) (vlax-safearray-fill newpoint pointlst) ) (progn (if (= (length pointlst) 2) (setq pointlst (append pointlst (list 0.0)))) (setq newpoint (vlax-3d-point pointlst)) ) ) (vla-put-coordinate vla index newpoint) (vla-update vla) ) (alert "所选的不符合要求,不是多段线") ) ) ;;去掉表中最后一个元素 (defun !last(lst) (reverse (cdr (reverse lst))) ) d 可以啦,请问一下我上面的程序好像不是很快啦,有人可以帮我改一下,变快的吗 d (defun pline_pt(name index pt) (vla-put-coordinate (vlax-ename->vla-object name) index (vlax-2d-point pt)) ) 自己写一个vlax-2d-point函数改变pt为2维点数组即可(类似vlax-3d-point) 原创加密lisp真正的破解.原创lisp操作cad内置对话框.原创lisp直接调用win32 api.原创lisp开发小助手(代码自动生成器).原创vba语句->lisp语句解释器.原创lisp音乐播放器.原创lisp直接使用vba对话框. |
所有的时间均为北京时间。 现在的时间是 04:03 PM. |