VB编程操作AutoCAD线宽

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