标签:
杂谈 |
分类: 开发 |
18点击菜单项就在该菜单上打对号是怎么实现的?
菜单项标签中可包括叹号和句号(!.) ,从而在菜单项前打上复选标记。虽然打标记的项可以被禁用,但标记一个菜单项不会使用户不能选择该项。
在下例中,Line 菜单项被打上标记。
[!.Line]
用DIESEL 来标记标签
菜单项标签中可以包含DIESEL 字符串表达式,用于判断在每次显示时,是否标记该标签。在下例中,如果与菜单标签相关的系统变量当前可用,则在该标签左边打上复选标记。
[$(if,$(getvar,orthomode),!.)Ortho]^O
[$(if,$(getvar,snapmode),!.)Snap]^B
[$(if,$(getvar,gridmode),!.)Grid]^G
19图层间图形实体的移动?请问各位高手:在AutoCADVBA中怎样通过程序实现
将一图层中的图形实体移到另一图形的图层上去
文档之间复制对象
CopyObjects方法是一个非常有用的工具。这里我们看看它是怎样在图形间复制对象。首先准备两个文档。在一个文档中,创建一些对象。如果另一个文档的名称不是Drawing1.dwg,可修改以下程序中的文档名称为你的图形名称。最后,确定激活包含有要复制对象的图形并运行以下宏,这样可以将本文档中的对象复制到名称为Drawing1.dwg的另一个文档中。
Dimss As AcadSelectionSet, doc As AcadDocument
Setdoc = ThisDrawing.Application.Documents("Drawing1.dwg")
Setss = CreateSelectionSet
ss.SelectOnScreen
ThisDrawing.CopyObjectsssArray(ss), doc.ModelSpace
20请问版主,如何实时获得当前光标的X,y,z坐标值,如同状态栏上显示坐标值
我只会在autolisp中用(grread)函数,objectarx 俺不懂。
21可以设置图块中的块属性值,如内
PublicSub SetAttribute()
Dim pickPnt As Variant
Dim blkRefObj As AcadBlockReference
' 选择图元,此段你可以直接将blkRefObj设为你刚插入的块
ThisDrawing.Utility.GetEntity blkRefObj, pickPnt
' 判断该块引用是否含有属性值
If Not blkRefObj.HasAttributes Then
MsgBox " 你选择的图块没有块属性,程序将退出!"
' 如果不含由属性值退出
Exit Sub
End If
Dim attVars As Variant
Dim I As Integer
' 获取块引用中的块属性对象
attVars = blkRefObj.GetAttributes
' 对块属性对象进行遍历
For I = 0 To UBound(attVars)
' 将块属性的值进行修改
If attVars(I)="mccad" Then
attVars(I).TextString = " 明经通道"
End If
Next
ThisDrawing.Regen True
EndSub
22我的选择集中有Block和PLine,我想能使用该函数
ThisDrawing.Application.ZoomCenter Center, Magnify
Center这个点取Block的中心点或者Pline的中心点,但是不知道该怎么取这个值,高手帮帮忙吧!!!
DimminExt As Variant
Dim maxExt As Variant
If ssetobj.Item(Me.MSHFlexGrid1.Row - 1).ObjectName = "AcDbBlockReference" Then
ThisDrawing.Application.ZoomCenter ssetobj.Item(Me.MSHFlexGrid1.Row - 1).InsertionPoint, 40
Else
ssetobj.Item(Me.MSHFlexGrid1.Row - 1).GetBoundingBox minExt, maxExt
ThisDrawing.Application.ZoomWindow minExt, maxExt
ThisDrawing.Application.ZoomScaled 0.5, acZoomScaledRelative
End If
23我的机器里装有cad14和cad2000,用vb写了一个程序调用cad,如何让程序每次都调用cad2000呢?
SetacadApp = GetObject(, "AutoCAD.Application.15")
24我只是想判断一下
因为我想画一条多段线,就要用到多个Getpoint,但是我不知道具体要话多少段,只是联系两点的线,我觉得如果可以象autocad里面画线那样就可以了阿
我现在是在画地理图上面的电线,是折线嘛!
然后捕捉错误来退出while。
对于取得的点可以通过数组来保存,而数组也可以用redim来重新定义
25SendCommand"_line" 没有返回值,怎么知道是否添加了line
在使用该方法前及后看看数据库中最后一个对象是否相同
菜单项标签中可包括叹号和句号
在下例中,Line
[!.Line]
用
菜单项标签中可以包含
[$(if,$(getvar,orthomode),!.)Ortho]^O
[$(if,$(getvar,snapmode),!.)Snap]^B
[$(if,$(getvar,gridmode),!.)Grid]^G
19图层间图形实体的移动?请问各位高手:在AutoCAD
将一图层中的图形实体移到另一图形的图层上去
文档之间复制对象
CopyObjects方法是一个非常有用的工具。这里我们看看它是怎样在图形间复制对象。首先准备两个文档。在一个文档中,创建一些对象。如果另一个文档的名称不是Drawing1.dwg,可修改以下程序中的文档名称为你的图形名称。最后,确定激活包含有要复制对象的图形并运行以下宏,这样可以将本文档中的对象复制到名称为Drawing1.dwg的另一个文档中。
Dim
Set
Set
ss.SelectOnScreen
ThisDrawing.CopyObjects
20请问版主,如何实时获得当前光标的X,y,z坐标值,如同状态栏上显示坐标值
我只会在autolisp中用(grread)函数,
21可以设置图块中的块属性值,如内
Public
End
22我的选择集中有Block和PLine,我想能使用该函数
Center这个点取Block的中心点或者Pline的中心点,但是不知道该怎么取这个值,高手帮帮忙吧!!!
Dim
23我的机器里装有cad14和cad2000,用vb写了一个程序调用cad,如何让程序每次都调用cad2000呢?
Set
24我只是想判断一下
因为我想画一条多段线,就要用到多个Getpoint,但是我不知道具体要话多少段,只是联系两点的线,我觉得如果可以象autocad里面画线那样就可以了阿
我现在是在画地理图上面的电线,是折线嘛!
然后捕捉错误来退出while。
对于取得的点可以通过数组来保存,而数组也可以用redim来重新定义
25SendCommand
在使用该方法前及后看看数据库中最后一个对象是否相同
前一篇:明经CAD_VBA论坛整理(2)
后一篇:明经CAD_VBA论坛整理(4)