明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 168|回复: 6

[基础] 如何将图纸中的对象集合保存成新的dwg格式文件

[复制链接]
发表于 2018-10-17 23:40 | 显示全部楼层 |阅读模式
我想将某一区域下的图形集合保存成一个新的dwg格式文件,请问如何实现?
 楼主| 发表于 2018-10-19 08:38 | 显示全部楼层
怎么没人回答新人提的问题啊?太简单了吗?
发表于 2018-10-19 09:25 | 显示全部楼层
本帖最后由 ssyfeng 于 2018-10-19 09:27 编辑
[code="lisp] 试试这个可以不

(defun c:tt (/ path pt ss)
  (vl-cmdf "_undo" "be")
  (setq path "c:\\00.dwg"   ;;;定义文件保存路径
    pt '(0 0 0)
    ss (ssget)
  )
  (vl-cmdf "-WBLOCK" path "" pt ss "")
  (vl-cmdf "_undo" "e")
  (vl-cmdf "_undo" 1)
  (princ)
)[/code]


 楼主| 发表于 2018-10-19 12:39 | 显示全部楼层
感谢ssyfeng兄弟热情回复
请熟悉c#的朋友给个方案
发表于 2018-10-26 08:48 | 显示全部楼层
某一区域?可以用闭合PolyLine组成一个区域。假设所有实体都在线内,这样可以用AcadEditor.SelectWindowPolygon(Point3dCollection polygon)方法获取到实体,记录ObjcetId到一个ObjectIdCollection中去。
然后,用Database  dbNew = new Database(false,true);
dbNew = HostApplicationServices.WorkingDatabase.Wblock(ObjectIdCollection,HostApplicationServices.WorkingDatabase.Ucsorg);
dbNew.SaveAs(PathName,DwgVersion.AC1015);
工作性质原因无法贴源码,抱歉。不懂可以咨询。
 楼主| 发表于 2018-10-31 20:10 | 显示全部楼层
问号兄233 发表于 2018-10-26 08:48
某一区域?可以用闭合PolyLine组成一个区域。假设所有实体都在线内,这样可以用AcadEditor.SelectWindowPol ...

感谢 问号兄233 兄弟的回复,你的思路是对的,你的方法是com调用模式吧
我的是插件的模式,问题来了:
获取选择集需要editor对象,我是通过ReadDwgFile读取到内存中处理,没法使用editor对象获取某一框选的对象集合,该怎么样处理啊?
发表于 2018-11-1 09:55 | 显示全部楼层
hengdong123 发表于 2018-10-31 20:10
感谢 问号兄233 兄弟的回复,你的思路是对的,你的方法是com调用模式吧
我的是插件的模式,问题来了:
...

readdwgfile直接得到整个文件数据库,个人理解这更倾向于非图形化的数据表。以前只通过查找块表记录中的某一个名字而得到固定的单一块,没有做过选取某一范围内的实体。稍微查找了一下,未找到具体解决方式,相信你也自己查了资料未果才来提问,所以这应该不是个容易实现的技巧,本人才疏学浅,表示无能为力。如果您能实现这一功能,还望分享告知。个人认为英文论坛更多解决方案,只是查起来慢一些,共勉。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-11-19 02:43 , Processed in 0.212175 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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