AutoCAD .NET:使用网格/自定义填充填充区域

时间:2017-10-13 04:43:37

标签: c# visual-studio-2012 autocad-plugin

我想用一个看似网格的自定义填充(如棋桌)填充选定的区域。我试图使用ANSI37模式,但它的线太密集,除了阴影的角度,我无法在视觉上进行任何修改。此外,我尝试了autocad的自定义填充图案创建,但是在autocad中加载文件或在我的代码中从中创建填充总是会导致错误。
这是我的问题:无论如何我可以创建自定义填充图案(网格状)我可以控制网格线的距离吗?我可以稍后检索自定义填充对象然后查询其行的信息吗? (多少行,起点和终点,它们之间的距离......) ?
提前谢谢你。

1 个答案:

答案 0 :(得分:0)

  1. 关于自定义预定义填充图案:可以这样做,但是必须按照特定顺序定义填充的属性才能产生实际效果,否则将忽略它并使用默认值。
  2. 例如:在我的情况下,我在PatternScale和PatternSpace之前定义了HatchStyle的值,而它应该是相反的方式。因此,我从默认值接收结果。

    1. 关于自定义网格线绘图和查询:我从这些中得到了一些想法:
    2. http://adndevblog.typepad.com/autocad/2013/07/create-hatch-objects-using-trace-boundaries-using-net.html

      使用Editor.TraceBoudary()方法,我可以检索我需要的循环,最外面的循环将是返回DBObjectCollection中的最后一个条目(准确的Polyline对象)。然后,创建需要加阴影线的区域并访问其RegionAreaProperty.Extends以获取包含新创建区域的矩形的左下角和右上角。之后 ,我可以实现我的逻辑来绘制网格线。

      请注意,此方法仅适用于2d循环(区域,闭合折线,线,曲线......在Oxy平面上)。我还没有为Editor.TraceBoundary()找到一种方法来处理3d循环。

      1. 仍然可以查看3d循环的建议和建议,并从给定的HatchPattern对象创建自定义填充。