明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1473|回复: 2

[求助]大侠看看这生成面域集合出错怎么解决

[复制链接]
发表于 2008-2-14 10:50:00 | 显示全部楼层 |阅读模式

请教:生成面域时,如果选择的是line的闭合组合,就会出错。

换个主题:如何用vla实现像command中region的效果??????

;;;CreateRegions 生成面域集合
(defun c:CreateRegions (/ ACADDOC ACADOBJ CUR I MS OBJLST REGIONS SS)
  ;;ss2elst选择集->图元表
  (defun ss2Elst (ss / elst)
    (setq i 0)
    (repeat (sslength ss)
      (setq elst (cons (ssname ss i) elst)
     i  (1+ i)
      )
    )
    (reverse elst)
  )
  (setq acadobj (vlax-get-acad-object)
 acaddoc (vla-get-ActiveDocument acadobj)
 ms (vla-get-ModelSpace acaddoc)
  )
  (setq ss
  (ssget
    '((0
       .
       "*POLYLINE,LINE,CIRCLE,ARC,ELLIPSE,SPLINE,XLINE,RAY"
      )
     )
  )
  )
  (setq objlst (mapcar 'vlax-ename->vla-object (ss2Elst ss)))
  ;;-------------------------------------------------
  ;;建立多个面域
  (setq cur (vlax-make-safearray
       vlax-vbObject
       (cons 0 (- (length objlst) 1))
     )
  )
  ;;这里有时出错"; 错误: Automation 错误。 输入无效"
  (vlax-safearray-fill cur objlst)
  (setq
    regions
     (vlax-safearray->list
       (vlax-variant-value (vlax-invoke-method ms 'AddRegion cur)) ;_这里出错
     )
  )
  ;;-------------------------------------------------
  ;;布尔运算-合并
  (foreach obj (cdr regions)
    (vla-boolean (car regions) acunion obj)
  )
  ;;轮廓上色
  (vla-put-Color (vlax-ename->vla-object (entlast)) 3)
  (princ)
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2008-2-16 13:44:00 | 显示全部楼层

期待高手出手

好像用vlax-method-applicable-p可以实现判断

发表于 2012-3-20 15:05:14 | 显示全部楼层
entlast 获取的对象不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-25 05:44 , Processed in 0.139854 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表