乐筑天下

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

如何导出布局丢失?

[复制链接]

13

主题

20

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2017-9-3 21:43:08 | 显示全部楼层 |阅读模式
两个问题:
1、我有很多不同图纸中的布局要导出,不打开这些图纸怎么做?
2、如何在不打开图纸的情况下创建视口?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2017-9-3 23:01:55 | 显示全部楼层
这两个特定任务涉及的很多API。如果您只是尝试将视口放入另一个绘图(多个偶数),您可以右键单击布局选项卡并使用“从模板导入”并选择您希望导入它们的绘图。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2017-9-4 00:10:55 | 显示全部楼层
2个问题。您知道如何从正在使用的绘图中导出布局吗?网?
2。可以使用在当前图形中创建视口吗?网?
如果是这样,那么您已经完成了一半,然后您可以打开内存中的绘图数据库(提示:database。ReadDwgFile(...) )并且你在背景中为多个绘图添加一点额外的逻辑。
回复

使用道具 举报

13

主题

20

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
72
发表于 2017-9-4 03:25:27 | 显示全部楼层
2个问题:
1.您知道如何从正在.net中处理的图形中导出布局吗
2.能否使用.net在当前图形中创建视口
是的,我现在在.net上使用这些方法,但是当文件数量很大,或者图形大小很大时,代码会变得不稳定,同一个图形,有时是ok,有时是错误的。因此,我尝试使用侧数据库,但使用当前图形和侧数据库之间存在许多差异:
以下代码运行正常,但有两个问题:
1,仅导出模型空间中的实体,图纸空间中的图元不导出,我不知道为什么
2,如果已剪切块,导出块将恢复其方向边界,剪切状态将消失
公共静态无效ExportLayoutSideDatabase(字符串oldFileName,字符串newFileName)
{
数据库currentDatabase=HostApplicationServices.WorkingDatabase;
使用(Database db=new Database(false,true))
{
db.ReadDwgFile(oldFileName,System.IO.FileShare.ReadWrite,true,null);
主机应用程序服务。工作数据库=db
ObjectId:layoutId=new ObjectId()
使用(Transaction tr=db.TransactionManager.StartTransaction())
{
布局管理器lm=LayoutManager.Current;
//ACAD_LAYOUT字典。
数据库字典layoutDict=tr.GetObject(db.layoutdirectionaryid,OpenMode.ForRead)作为词典
//迭代字典条目
foreach(DBDictionaryEntry de in layoutDict)
{
字符串layoutName=de.Key;
if(layoutnam!=“Model”)
{
layoutd=lm.GetLayoutId(layoutName);
lm。CurrentLayout=layoutName
中断
}
}
tr.Commit()
}
Autodesk.AutoCAD.ExportLayout。Engine Engine=Autodesk.AutoCAD.ExportLayout.Engine。实例()
使用(数据库Outdb=engine.ExportLayout(layoutId))
{
如果(engine.EngineStatus!=AcExportLayet.ErrorStatus.Successed)
{
}{
Arx.Prompts.Editor.WriteMessage(“\nexportLayoutFailed:”,engine.EngineStatus.ToString());
返回
}
否则
{
Outdb.SaveAs(newFileName,DwgVersion.AC1800);
}
}主机应用程序服务。WorkingDatabase=currentDatabase
}
}
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2017-9-4 09:56:49 | 显示全部楼层
只是好奇,欧特克在哪里。AutoCAD.ExportLayout.Engine类来自?至少我没有在Acad2018 APIs上看到它。你用的是哪个版本的AutoCAD?
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2017-9-4 11:08:08 | 显示全部楼层

这是一个很好的例子https://www.theswamp.org/index.php?topic=44472.msg497326#msg497326
AcExportLayout.dll
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2017-9-4 14:33:44 | 显示全部楼层
啊,谢谢,杰夫,链接。显然,Autodesk.AutoCAD.ExportLayout是未记录的API,不适合外人使用。虽然我几乎盲目地信任Tony的任何代码,但他的例子是从Acad编辑器中打开的文档导出的。我们不知道 ExportLayout 命名空间是否可以应用于端数据库。因此,人们只能用他/她自己的自由裁量权使用它:如果它有效,那么有效,如果它不是,它就不是。我不认为Autodesk或这里的任何人能够提供关于OP代码不起作用的原因的进一步细节/解释。
OTH,完全可以通过正式提供的Acad .NET API编写代码来导出布局,论坛中的任何人都可以评论。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2017-9-4 18:28:22 | 显示全部楼层
我从来没有用过它,除了用反射器看它,并得到了一些关于扩展方法的想法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 12:45 , Processed in 0.208716 second(s), 79 queries .

© 2020-2025 乐筑天下

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