ygp820601 发表于 2019-4-5 17:36:52

vla-get-area获取填充图案的面积,为什么会自动退出?

vla-get-area获取填充图案的面积时,当填充没有面积时会自动退出程序,如何才能让其返回nil,程序接着执行后面的语句?

yshf 发表于 2019-4-6 10:14:52

(setq mj (vl-catch-all-apply 'vla-get-area (list obj)))
(if (vl-catch-all-error-p mj)
    (setq mj nil)
)

ygp820601 发表于 2019-4-6 17:04:19

yshf 发表于 2019-4-6 10:14
(setq mj (vl-catch-all-apply 'vla-get-area (list obj)))
(if (vl-catch-all-error-p mj)
    (setq mj ...

按你的方法试了下,不行哦。

yshf 发表于 2019-4-6 23:23:56

(defun c:test()
   (vl-load-com)
   (while (setq ssa (ssget ":S" '((0 . "HATCH"))))
      (setq obj (vlax-ename->vla-object (ssname ssa 0)))
      (setq mj (vl-catch-all-apply 'vla-get-area (list obj)))
      (if (vl-catch-all-error-p mj)
            (setq mj nil)
      )
      (if (/= mj nil)
          (princ (strcat "\n所选取填充的面积=" (rtos mj 2 3)))
          (princ "\n所选取填充不具有面积属性" )
       )
   )
   (princ)
)

ygp820601 发表于 2019-4-8 12:36:44

原来如此,多谢!
页: [1]
查看完整版本: vla-get-area获取填充图案的面积,为什么会自动退出?