代码改变世界

VB编程操作AutoCAD线宽

2011-06-15 22:23  精诚所至 金石为开  阅读(881)  评论(0编辑  收藏  举报

Lineweight属性控制图形在屏幕上可以显示不同的宽度,线宽的使用包括设置线宽和显示线宽,线宽的设置与显示可以使用户在绘图中减少差错。

  • 设置线宽

Lineweight属性设置线宽,语法格式:object.Lineweight。

Lineweight属性值不能任意设置,而是由内置常数决定,编程输入时将自动显示出来供选择,线宽默认单位为毫米,Lineweight属性默认值为25,即0.25毫米,可以通过设置系统变量LWDEFAULT来改变该值,系统变量LWUNIT可以改变线宽的单位,LWUNIT=0,线宽单位为英寸:LWUNIT=1,线宽单位为毫米。

设置对象线宽的语句格式如下。

Set circleObj=AcadApp.ActiveDocument.ModelSpace.AddCircle(centerpoint,radius)

通过设置图层的线宽,可以使该图层上的物体均使用同一线宽绘制。

  • 显示线宽

在模型空间中是否显示线宽,可由Preferences对象的LineWeightDisplay属性控制,该属性为布尔型,属性值为True时显示线宽,为False时不显示线宽,也可通过系统变量LWDISPLAY来控制是否显示线宽,LWDISPLAY=0,不显示线宽,线宽为一个像素,LWDISPLAY=1显示线宽。下面的代码绘制两个圆并显示线宽。

Private Sub Command1_Click()
    Dim testlayer As AcadLayer
    Set testlayer = acadapp.ActiveDocument.Layers.Add("TEST")
    acadapp.ActiveDocument.ActiveLayer = testlayer
    testlayer.Lineweight = acLnWt200
    acadapp.ActiveDocument.Preferences.LineWeightDisplay = True
    Dim circleobj1 As AcadCircle
    Dim circleobj2 As AcadCircle
    Dim centerpoint(0 To 2) As Double
    Dim radius As Double
    centerpoint(0) = 0#: centerpoint(1) = 0#: centerpoint(2) = 0
    radius = 5#
    Set circleobj1 = acadapp.ActiveDocument.ModelSpace.AddCircle(centerpoint, radius)
    Set circleojb2 = acadapp.ActiveDocument.ModelSpace.AddCircle(centerpoint, radius / 2)
    circleobj1.Lineweight = acLnWtByLayer
    circleobj2.Lineweight = acLnWt100
   
    acadapp.ActiveDocument.Regen acActiveViewport
    ZoomExtents
End Sub