4

我目前正在将 VBA AutoCAD 应用程序转换为 VB.NET,我正在处理的当前命令是使用如下代码创建一个简单的领导者:

Set leaderObj = ThisDrawing.ModelSpace.AddLeader(points, blockRefObj, leaderType)
leaderObj.ArrowheadType = acArrowDotSmall
leaderObj.ArrowheadSize = 2.5 * varDimscale
leaderObj.DimensionLineColor = acWhite

我已经能够在 .NET 中使用创建领导线

Dim l = New Leader()
For Each point In jig.LeaderPoints
    l.AppendVertex(point)
Next
l.Dimldrblk = arrId

arrId我从使用这里找到的函数中得到,但我一直无法弄清楚如何将引线的颜色设置为白色(默认显示为红色),以及如何设置箭头的大小。如果有人可以帮助我解决这个问题,我将不胜感激。

4

2 回答 2

2

好的,经过大量的试验和错误,我发现解决方案相当简单。我不必覆盖任何尺寸样式(老实说,我什至不知道这是什么,在收到这个项目之前,我在 AutoCAD 中有一个简短的初学者课程),我只需要在Leader-object 上设置一个晦涩的属性。对于将来的参考,以及其他尝试做同样的事情的人,这是我最终使用的属性:

领导者.Dimclrd
引导线的颜色。代表“尺寸线颜色”之类的东西。
领袖.Dimasz
领导者的规模。
于 2013-07-08T07:35:29.120 回答
1

作为 BlockReference 类型,它应该具有颜色属性,并且该属性应该是 Autodesk.Autocad.Colors.Color 或整数。另外,您获取对象进行读取的原因是,在您的事务中,您正在打开数据库

OpenMode.ForRead

这是正确的。但是要编辑数据库中的对象,您必须检索对象,如下所示

var obj = Thetransaction.GetObject(theobjectid,OpenMode.ForWrite) as BlockReferance;

这是在内部完成的

using(var trans = TransactionManager.StartTransaction()){}

我在一个单元格上执行此操作,因此请检查骆驼大小写和语法,因为我是用 c# 编写的,但它应该非常接近。

您可能想查看是否有 scale 属性,以更改大小。

希望这将使您朝着正确的方向前进。

如果您有任何问题,请告诉我。:)

于 2013-07-06T13:18:31.277 回答