在AutoCad中更改领导者的颜色

时间:2013-07-05 14:15:39

标签: vb.net vba autocad-plugin

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

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

我已经能够使用

在.NET中创建Leader-line
Dim l = New Leader()
For Each point In jig.LeaderPoints
    l.AppendVertex(point)
Next
l.Dimldrblk = arrId

我使用here找到的函数得到的arrId,但我一直无法弄清楚如何将领导者的颜色设置为白色(它显示为红色的默认),以及如何设置箭头的大小。如果有人能帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:2)

好的,经过大量的反复试验,我发现解决方案相当简单。我没有必要覆盖任何维度样式(我老实说甚至不知道是什么,在获得此项目之前我在AutoCAD中有一个简短的初学者课程),我只需要在{{1上设置一个模糊的属性}}-宾语。对于将来的参考,以及其他任何试图做同样的人,这里是我最终使用的属性:

  
leader.Dimclrd
  
领导者的颜色。代表“尺寸线颜色”之类的东西。
  
leader.Dimasz
  
领导者头的规模。

答案 1 :(得分:1)

作为类型BlockReference,它应该具有color属性,属性应该是Autodesk.Autocad.Colors.Color或Integer。此外,您获取读取对象的原因是,在您的事务中,您使用

打开数据库
OpenMode.ForRead

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

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

这是在

内完成的
using(var trans = TransactionManager.StartTransaction()){}

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

您可能想要查看是否存在缩放属性,以更改大小。

希望这会让你朝着正确的方向前进。

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