乐筑天下

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

同步(刷新)图纸集

[复制链接]
pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-3-27 12:09:35 | 显示全部楼层 |阅读模式
我在Autocad 2016在线帮助中找到了这个更新提供的AcadDatabase对象的工作表集中的工作表视图组件,语法同步(pXDb As IAcadDatabase)As Object我正在尝试以编程方式“刷新”工作表视图Document acDoc=Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;。
数据库acadDatabase=acDoc.Database;。

AcSmSheetSetMgr mgr=new AcSmSheetSetMgr();。

AcSmDatabase db=new AcSmDatabase();。
db.LockDb(db);。
AcSmSheetSet ss=db.GetSheetSet();。

......。
......。

db.UnlockDb(db,true);。
ss.Sync(acadDatabase);。
mgr.Close(db);。
上面似乎不起作用错误显示CS1503参数1:无法从“Autodesk.AutoCAD.DatabaseServices.Database”转换为“AXDBLib.AcadDatabase”问题:如何AXDBLib.AcadDatabase或将变量acadDatabase转换为正确的形式?提前谢谢pBe。

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

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

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2017-3-27 12:58:22 | 显示全部楼层
Object acadDatabase=acDoc.Database.AcadDatabase;
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-3-27 13:27:41 | 显示全部楼层
我会试一试 杰夫谢谢编辑: [CommandMethod(“SheetViewWrite”)]。

使用 AXDBLib; //。

公共 void SheetViewWrite()。
{。
Document acDoc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument;。

// object acadDatabase = acDoc.Database.AcadDatabase;。

AcadDatabase acadDatabase = new AcadDatabase(); //。

字符串 ssFilePath = userInput(“\n输入工作表集名称: ”);。

Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;。

AcSmSheetSetMgr mgr = new AcSmSheetSetMgr();。
AcSmDatabase db = new AcSmDatabase();。

尝试。
{。
db = mgr.OpenDatabase(ssFilePath, true);。

}。
catch (System.Exception ex)。
{。
编辑,WriteMessage(例如ToString());。
返回;。
}。

AcSmSheetSet ss = db.GetSheetSet();。

ss.Sync(acadDatabase);/// 。
经理,关闭(数据库);。

}似乎无法识别物体... 想知道我错过了什么吗?也许是参考文件?编辑2:让我们看看上面的工作是否有效.....更新工作表集不“刷新”,现在给出错误HRESULT E_FAIL已从对COM组件的调用返回。  at ACSMCOMPONENTS20Lib.IAcSmSheetSet.Sync(AcadDatabase pXDb)。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-3-28 04:55:58 | 显示全部楼层

语法
同步(pXDb AsIAcadDatabase)作为对象
IAcadDatabase
我不明白,I表示
接口

实例

回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2017-3-28 09:30:01 | 显示全部楼层
你试过这个吗
AcadDatabase:acddatabase=acDoc.Database.AcadDatabase;
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-3-28 10:02:29 | 显示全部楼层
感谢您的耐心Jeff_M..
我在acDoc.Database下得到了一条曲线。阿卡达酶
无法将类型“object”隐式转换为“AXDBLib.AcadDatabase”。存在显式转换(是否缺少转换?
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2017-3-28 11:06:04 | 显示全部楼层
抱歉,应该这样做:
AcadDatabase acadDatabase=(AcadDatabase)acDoc.Database.AcadDatabase;
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-3-29 05:40:07 | 显示全部楼层
我会试一试。随时通知您
谢谢Jeff_M
它不会产生任何错误,但不会刷新工作表视图。我会继续挖掘...
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2017-4-5 12:06:40 | 显示全部楼层
这方面还没有任何进展,
我使用了Lee Ambrosius的CP318-4中的代码。159467-CP 318-4-使用-VB-NET查看图纸集对象

使用图纸集数据填充AutoCAD中的树状图。NET - Part 2作者Kean Walmsley
http://through-the-interface . typepad . com/through _ the _ interface/2010/05/populating-a-tree-View-inside-AutoCAD-with-Sheet-set-data-using-NET-Part-2 . html
修改代码以将值写入自定义特性和图纸视图。经过有限的测试后,一切都很好,唯一的问题是,在代码将值设置为“AcSmSheetView”后,用户需要在图纸集管理器下的“模型视图”选项卡上选择“刷新”按钮,如果没有,Autocad有时会崩溃,但只有当您尝试“重命名和重新编号”图纸视图项目时,单击“刷新”时一切都好。
这种情况只发生在普通cad中,在Civil 3D中从未出现过。
这就是我需要“刷新”功能的原因。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 13:56 , Processed in 0.158524 second(s), 70 queries .

© 2020-2025 乐筑天下

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