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