永不言弃 发表于 2023-7-17 13:37:26

请教大神们一个问题,批量偏移时,在出错的情况是下,如何跳过出错的继续偏移,谢谢

请教大神们一个问题,批量偏移时,在出错的情况是下,如何跳过出错的继续偏移

选择对象:
Automation 错误。未提供说明。



(defun c:tt()
(vl-load-com)
(if (setq ss (ssget ))
    (progn
      (setvar "OSMODE" 0)
      (repeat (setq k (sslength ss))
(setq ent (ssname ss (setq k (1- k))))
(setq obj (vlax-ename->vla-object ent))
(vla-offset obj 5)
)
      )
    )
(princ)
)

liuhe 发表于 2023-7-17 14:01:48

(defun c:tt ()
(vl-load-com)
(if (setq ss (ssget))
    (progn (setvar "OSMODE" 0)
   (repeat (setq k (sslength ss))
       (setq ent (ssname ss (setq k (1- k))))
       (setq obj (vlax-ename->vla-object ent))
       (vl-catch-all-apply 'vla-offset(list obj 5))
   )
    )
)
(princ)
)将参数表传递给指定函数并截取错误(vl-catch-all-apply 'function list)参数’function函数。function 参数可以为标识 defun 的符号或 lambda 表达式。list表,包含要传递给函数的参数。返回值如果成功则返回函数调用的结果。如果出现错误,vl-catch-all-apply 返回一个错误对象。确定参数是否是 vl-catch-all-apply 返回的错误对象(vl-catch-all-error-p arg)参数arg任何参数。返回值如果提供的参数是 vl-catch-all-apply,返回的错误对象,则为 T,否则为 nil。示例使用 vl-catch-all-apply 时被零除:_$ (setq catchit (vl-catch-all-apply '/ '(50 0)))#<%catch-all-apply-error%>使用 vl-catch-all-error-p 确定 vl-catch-all-apply 返回的值是否为错误对象:_$ (vl-catch-all-error-pcatchit)
T


永不言弃 发表于 2023-7-17 15:28:00

liuhe 发表于 2023-7-17 14:01
将参数表传递给指定函数并截取错误(vl-catch-all-apply 'function list)参数’function函数。function 参数 ...

非常感谢,可以了
页: [1]
查看完整版本: 请教大神们一个问题,批量偏移时,在出错的情况是下,如何跳过出错的继续偏移,谢谢