我做了些修改,测试了一下,没问题
[UseMoney=5] - (defun c:chapic3 ()
- (defun 3dPoint->2dPoint (3dpt)
- (list (car 3dpt) (cadr 3dpt))
- )
- (defun gp:list->variantArray (ptsList / arraySpace sArray)
- ; 给以双精度实数表示的二维点数组分配空间
- (setq arraySpace
- (vlax-make-safearray
- vlax-vbdouble ; 元素类型
- (cons 0
- (- (length ptsList) 1)
- ) ; 数组维数
- )
- )
- (setq sArray (vlax-safearray-fill arraySpace ptsList))
- ; 返回数组变体
- (vlax-make-variant sArray)
- )
- (vl-load-com)
- (setq acad (vlax-get-acad-object))
- (setq document (vla-get-activedocument acad))
- (setq modelspace (vla-get-modelspace document))
- (setq utili (vla-get-utility document))
- (setq image (vlax-ename->vla-object (car (entsel "\n 选择要修剪的图片"))))
- (setq ptlis '())
- (setq n 0)
- (command "line")
- (vla-setvariable document "osmode" 1)
- (while (setq pt (getpoint "\n 点取一点:"))
- (progn
- (command pt)
- (setq ptlis (append ptlis (list (list (car pt) (cadr pt)))))
- (setq n (1+ n))
- )
- )
- (command "")
- (setq polypoints
- (apply 'append
- (mapcar '3dPoint->2dPoint
- ptlis
- )
- )
- )
- (setq clippt (gp:list->variantArray polypoints))
- (vla-clipboundary image clippt)
- (vla-put-clippingenabled image :vlax-true)
- (vla-update image)
- (vla-zoompickwindow acad)
- )
[/UseMoney] |