lisp 用entmake创建面域的组码有哪些

新手求助,问题如题... 新手求助,问题如题 展开
 我来答
朱06CAD
2019-03-15 · 知道合伙人软件行家
朱06CAD
知道合伙人软件行家
采纳数:4172 获赞数:18070
高中,熟悉AutoCAD。会autolisp及VBA程序。

向TA提问 私信TA
展开全部

entmake函数好像做不到创建面域,可以使用vlisp函数来做。代码如下:

;封闭曲线变面域;例
(defun c:tes ()
 (if (and (setq ent (entsel "\n请选择封闭的曲线"))
     (setq ent (car ent))
     (setq obj (vlax-ename->vla-object ent))
     (vlax-curve-isClosed obj)
   )
  (progn
   (setq obj (ZH_MY obj));得到面域图元
  )
 )
 (princ)
)

;面域转换
(defun ZH_MY (obj / ms obj obj1 va)
 (setq ms (vla-get-modelspace (vla-get-ActiveDocument (vlax-get-acad-object)))
       va (vlax-make-safearray vlax-vbObject '(0 . 0))
 )
 (vlax-safearray-put-element va 0 obj)
 (if (vl-catch-all-error-p (setq obj1 (vl-catch-all-apply 'vla-addregion (list ms va))))
  (setq obj1 nil)
  (vl-catch-all-apply 'vla-delete (list obj));删除原来的对象
 )
 obj1
)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式