乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 147|回复: 9

請問region object 相剪\相加\的方法是什麽去了?

[复制链接]

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-7-31 10:48:00 | 显示全部楼层 |阅读模式
用vla-addregion创建了两个object region obj_reg1 obj_reg2
region相剪\相加\的方法是什么去了?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-7-31 13:50:00 | 显示全部楼层
什么叫“什么去了”?
回复

使用道具 举报

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-7-31 17:13:00 | 显示全部楼层
cad里region是subtrace和union
lisp里是什么?
把region换回ename图元的region相加相减我知道
我想问问region为vla-object的时候有没有region object相加相减的方法?
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-7-31 17:14:00 | 显示全部楼层
vla-boolean
回复

使用道具 举报

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-8-2 10:32:00 | 显示全部楼层
想问几个很看似粗浅但是本人尚未理解的问题
Vla-AddRegion的对象是modelspace集合\paperspace\block。这个集合是怎么样做出来?
我开始天真的以为只要
PS: obj is a Vla-Object
(vlax-make-variant(vla-saftarray-fill (vla-make-safearray vla-vbObject (cons 0 (list obj))) (list obj)))
就可以创建一个object集合了,但是实际上我也不知道我哪里错了,应该是错在一些基本的规则没弄清楚吧??
顺便想请教一下paperspace\block又是怎么用vla函数创建出来的。
vla-boolean里,它的对象又是怎么样的?看过activex里的介绍是一个需要进行运算的vla-object。
我想只有一个object怎么进行运算?虽然运算成功的条件是有相交的物体。但是如果有多个物体的时候是怎么计算的呢?
恕我没明白过来问的确些粗浅问题。
盼解答,不胜感激。
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-8-2 12:59:00 | 显示全部楼层
这其实不是问题的深奥和粗浅的问题,而是你对ActiveX方法完全没有理解。。。
你要正确理解模型结构,如:document是属于aplication对象,所以获得document就是
(vla-get-activedocument (vlax-get-acad-object));后面就是获得ACAD的aplication对象,
而modelpace是属于document对象
模型空间就是
(vla-get-modelpace (vla-get-activexdocument (vlax-get-acad-object)))
至于,其它的对象的获得,你就参考帮助中的ActiveX and VBA reference的模型结构,然后点击某对象,查看其属性和方法(建议你先看帮助文件的开发者手册中的ActiveX部分)
回复

使用道具 举报

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-8-2 13:42:00 | 显示全部楼层
单个的modelspace的获得和使用我已经明白.
但我不明白modelspace集合的创建是怎么一回事
说明里解释说This collection represents all the objects in model space..
就是说我所有利用modelspace创建的vla-object全在这个集合中??
而这个集合用visual lisp如何表示出来的?
如何向其中添加元素?
后面又解释说道这个集合中的元素是不可删除的……
烦请明示一下。
或者说我是钻进了死胡同里。
单纯的研究说明书上的字眼真的有点不知说云。
真的想看的一段例子。。
比如,用vlisp方法如何从一段闭合的多义綫pline创建面域region??
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-8-2 14:49:00 | 显示全部楼层
(defun c:tt         (/ mspace objlist objarray cnt)
         (setq mspace                 (vla-get-Modelspace
                                                                                                                                                 (vla-get-activedocument (vlax-get-acad-object)))
                                                         objlist         (mapcar 'vlax-ename->vla-object
                                                                                                                                                                                                 (ss_sslist (ssget '((0 . "LWPOLYLINE")))))
                                                         objarray (vlax-make-safearray vlax-vbObject '(0 . 0))
                                                         cnt                                         0)
         (foreach obj         objlist
                         (vlax-safearray-fill objarray (list obj))
                         (if (not
                                                                         (vl-catch-all-error-p
                                                                                         (vl-catch-all-apply 'vla-addregion (list mspace objarray))))
                                         (setq cnt (1+ cnt))))
         (if (> cnt 0)(princ (strcat "\n" (itoa cnt) " region(s) created in Modelspace.")))
         (princ)
         )
;; ! *****************************************************************************
;; ! SS_sslist
;; ! *****************************************************************************
;; ! Function : Return a list of entities in selection set
;; ! Arguments: 'ss'                 - Selection Set to process
;; ! Return                 : A List of all entities found in selection set
;; ! Updated         : December 30, 1998
;; ! e-mail                 : rakesh.rao@4d-technologies.com
;; ! Web                                         : www.4d-technologies.com
;; ! ****************************************************************************
(defun SS_sslist         (ss / ssl cnt ELst)
         (setq
                         ssl         (if ss
                                                                                 (sslength ss)
                                                                                 0)
                         cnt         0
                         ELst '()
                         )
         (repeat ssl
                         (setq
                                         ELst (cons (ssname ss cnt) ELst)
                                         cnt         (1+ cnt)
                                         )
                         )
         (reverse ELst)
         )
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-8-2 16:35:00 | 显示全部楼层
modelspace就是指模型空间,你在模型空间画的图不都在这个modelspace中吗,你认为模型空间可以删除吗?
你不是看不明白,是你还明白这个东西之前就去看它,所以看不明白,,,你应该先看帮助文件开发者手册中的ActiveX部分,看完了,看明白了,再去看对象模型参考
你要的例子(运行:test,选择:一个封闭的多线段)
(defun object->variantArray (ptsList / arraySpace sArray)
        (setq arraySpace (vlax-make-safearray vlax-vbobject
                                 (cons 0 (- (length ptsList) 1))
                         )
        )
        (setq sArray (vlax-safearray-fill arraySpace ptsList))
        (vlax-make-variant sArray)
)
(Defun c:test( / mp ent pt1 pt2)
         (setq mp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
         (vla-addregion mp (object->variantarray (list (vlax-ename->vla-object (car (entsel))))))
)
回复

使用道具 举报

14

主题

46

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
102
发表于 2004-8-2 19:49:00 | 显示全部楼层
真是太感谢了。。
有了这2段生动的例子。。不明白的东西也就豁然贯通了。。
所谓的集合就是object的list 转换成viriant
困扰了几天的问题终于解决了不少。。。
最后还想借帖子问问。。
vlisp里将命令"list"后出现的那些information
用什么方式输出到word 或者数据库的呢?
或者说这个information属于对象的哪中类型
又或者他的vba 类名?
多次请教。。。只有谢了又谢!
^o^..b
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-19 06:49 , Processed in 2.763399 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表