乐筑天下

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

访问图纸集组件

[复制链接]
pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2016-5-12 02:17:50 | 显示全部楼层 |阅读模式
.NET 。
获取对图纸集管理器对象的引用 。
IAcSmSheetSetMgr sheetSetManager = default(IAcSmSheetSetMgr);。
sheetSetManager = new AcSmSheetSetMgr();。

打开图纸集文件 。
AcSmDatabase sheetSetDatabase = default(AcSmDatabase);。
sheetSetDatabase = sheetSetManager.OpenDatabase(DSTPath, true);。

从数据库获取图纸集 。
AcSmSheetSet sheetSet = sheetSetDatabase.GetSheetSet();    。

AcSmSubset = 。

是我陷入困境的部分,如何访问已知“名称”的子集:图纸集上的子集?类似于 (vla-item SheetSetCollection “Irrigation”) AcSmSubset subset = default(AcSmSubset);。
subset = (sheetSetDatabase.GetName(), SubsetName);谢谢你。

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

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

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

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

铜币
238
发表于 2016-5-12 10:23:09 | 显示全部楼层
查看:
AcSmSheetSet。GetSheetEnumerator()方法,该方法返回IAcSmEnumComponent。类似于:
var iterator = sheetSet。GetSheetEnumerator()
var sheet = iterator。Next()作为AcSmSheet
while (sheet!= null)
{
//对工作表执行某些操作....
迭代器。Next()
}
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-13 01:10:47 | 显示全部楼层

不确定两者之间是否相等。 对我来说,也许与vlax转储非常接近的将是Visual Studio中的智能感知。 在使用lisp这么多年后,不得不打破我的大脑来学习.Net。
回复

使用道具 举报

51

主题

613

帖子

9

银币

中流砥柱

Rank: 25

铜币
815
发表于 2016-5-13 07:59:28 | 显示全部楼层
我不认为你可以从Lisp访问SSM?
回复

使用道具 举报

16

主题

506

帖子

6

银币

中流砥柱

Rank: 25

铜币
570
发表于 2016-5-13 10:15:29 | 显示全部楼层
dotNET中有大量(vla-Item...)的等效项。该函数用于从索引集合中获取条目,类似于Item()或ElementAt()方法。在dotNET中,访问集合的方法将取决于集合的类型。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-14 20:03:41 | 显示全部楼层
将. net与工作表集一起使用的一个很好的例子:
http://adndevblog.typepad.com/autocad/2013/09/using-sheetset-manager-api-in-vbnet.html
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2016-5-23 10:01:43 | 显示全部楼层
谢谢你的Area 51Visitor,我有这个来检索Sheet Set ObjectID,。
[命令方法(“RetriveInfoSSM”)]。
公共空检索信息SSM()。
{。

IAcSmSheetSetMgr sheetSetManager=默认(IAcSmSheetSetMgr);。
sheetSetManager=new AcSmSheetSetMgr();。

AcSmDatabase SheetSetDatabase=默认(AcSmDatabase);。
sheetSetDatabase=sheetSetManager.OpenDatabase("Z:\\Plachold\\Sheet SetTemplate.dst", false);。

MessageBox.Show(sheetSetDatabase.GetObjectId(),GetHandle());。

sheetSetManager.Close(sheetSetDatabase);。
}。
问题:有没有办法将值传递给命令退出时可用的变量,而不是MessageBox.Show?我仍在研究这个。据我所知,IAcSmEnumComponent确实是解决它的方法。。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2016-5-23 22:24:42 | 显示全部楼层
我假设通过它,所以你可以用它来自动lislisp。如果我错了,请纠正我。
我自己没有这样做,但我的直觉告诉我使用currentDocument.SendStringToExecute(),但格式会有点棘手......有关示例,请参见下文。
currentDocument.SendStringToExecute(“(setq test (append test (list \”“ + i.ToString() + ”\“)) ” “ , true, false, false);
IMO这就像使用破坏球来完成锤子工作一样。不过,我不能强调我建议使用c#和.net进行多少操作。 起初很奇怪,与直接在命令行中编写lisp相比,调试是一种痛苦,但最终我认为你很难再次想要用lisp编写。.net有太多的好处。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2016-5-24 00:15:26 | 显示全部楼层

谢谢你的提示。
不知何故,我知道你会这么说。,我开始观看Bob Tabor[Channel 9]的C#视频教程并浏览Little Wonder系列。由Kerry发布的James Michael Hare,我还买了Pat McGee的一本书,我喜欢我所看到的。
但现在,该程序已完成90%[i],我只需要使用. NET的帮助运行一个程序。在10%[Sheet Set的一面]。所以请在这方面耐心等待我。
当我知道足够多时,我肯定会重新编写整件事。NET。
感谢您的所有帮助。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2016-5-24 01:29:14 | 显示全部楼层
谢谢Area51visitor,SendStringToExecute工作。string Tolisp = sheetSetDatabase.GetObjectId().GetHandle();。
acDoc.SendStringToExecute(“(_fromNet \”“ + Tolisp +”\“) ”, true, false, false);。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 18:53 , Processed in 0.265592 second(s), 83 queries .

© 2020-2025 乐筑天下

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