明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: tchen

求助

  [复制链接]
发表于 2006-5-28 21:51:00 | 显示全部楼层
tchen发表于2006-5-28 21:21:00 楼上兄弟有QQ没? 我是照你的语句写的啊 我把 我选择的对象的NAME转换成VLA对象OBJ (我只有一个对象也就是我用ENTSEL选择的一个闭合多段线 ...


(vl-load-com)
  (setq acaddocument(vla-get-activedocument(vlax-get-acad-object)))
  (if (and(= (getvar "tilemode") 0)(= (getvar "cvport") 1))
      (setq acadspace (vla-get-paperspace acaddocument))
      (setq acadspace (vla-get-modelspace acaddocument))
)
(setq a(ssget))
(setq n -1)
(while (<(setq n(1+ n)) (sslength a))
  (setq b(cons (vlax-ename->vla-object(ssname a n)) b))
)
(setq reg(vlax-invoke acadspace 'AddRegion b))
(setq centrpt(vlax-get (nth 0 reg) 'centroid))

使用entsel

(setq b(vlax-ename->vla-object (car(entsel))))

(setq reg(vlax-invoke acadspace 'AddRegion (list b)))
(setq centrpt(vlax-get (nth 0 reg) 'centroid))

 楼主| 发表于 2006-5-28 22:00:00 | 显示全部楼层
我懂你的意思 只是我这里还是调试不通过 错误还是那样的  由于我是CAD2004 你的这句话(setq reg(vlax-invoke acadspace 'AddRegion (list b)))  必须改成(setq reg(vlax-invoke-method acadspace 'AddRegion (list b)))不过我想问题不是这个
发表于 2006-5-28 22:03:00 | 显示全部楼层
tchen发表于2006-5-28 22:00:00我懂你的意思 只是我这里还是调试不通过 错误还是那样的 由于我是CAD2004 你的这句话(setq reg(vlax-invoke acadspace 'AddRegion (list b))) 必须改...


开玩笑了你,我的2004也测试通过,2002的也测试通过,不要改语句,,直接照我的语句,,,,

拜托直接复制我的语句过去测试下好不好?2006的我也刚测试过,,,,,

 楼主| 发表于 2006-6-1 21:45:00 | 显示全部楼层
xxsheng : 你的代码我运行了是对的 不过你代码只能实用于我用LWPOLYLINE画的闭和的二维多段线  对于我用POLYLINE 画的闭和的二维多段线(也就是我用CASS软件画的X线)确不能用  提示(setq centrpt(vlax-get (nth 0 reg) 'centroid)) 函数用问题 我想请你帮我解释一下原因? 再就是能否帮我解释一下(setq centrpt(vlax-get (nth 0 reg) 'centroid))  这个函数??  我没看懂(nth 0 reg) 这个参数的具体意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-21 19:16 , Processed in 0.161215 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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