livingice 发表于 2007-11-27 16:28:00

请教如何编程(vb)实现对已有DWG图中的部分尺寸修改

小女子初学和SolidWorks的二次开发,想用vb实现把AutoCAD中的尺寸数据读出,用于SolidWorks的建模中。诚心希望能得到各位前辈的指点。

兰州人 发表于 2007-11-28 14:15:00


主要用以下两条语句。
TextOverRide--------指定标注的文字字符串。
Measurement--------获取标注的测量单位。
Sub lls()
Dim dd As AcadDimension
Dim ent As AcadEntity
For Each dd In ThisDrawing.ModelSpace
    Debug.Print dd.ObjectName
    'Debug.Print dd.TextOverride
    Debug.Print dd.Measurement
   
Next dd
End Sub

兰州人 发表于 2007-11-28 14:28:00

更改标注尺寸值的为真实值
来自
Public Sub SelfOverRide(objDim As AcadDimension)
Dim objBlk As AcadBlock
Dim objEnt As AcadEntity
Dim varPos As Variant
Dim varInsPnt As Variant
Dim objDimText As AcadMText
Dim objBlocks As AcadBlocks
Dim blnDone As Boolean
Set objBlocks = ThisDrawing.Blocks
varPos = objDim.TextPosition
For Each objBlk In objBlocks
If Not blnDone Then
If Left(objBlk.Name, 2) = "*D" Then
For Each objEnt In objBlk
If TypeOf objEnt Is AcadMText Then
Set objDimText = objEnt
varInsPnt = objDimText.InsertionPoint
If varInsPnt(0) = varPos(0) Then
If varInsPnt(1) = varPos(1) Then
objDim.TextOverride = objDimText.TextString
blnDone = True
Exit For
End If
End If
End If
Next objEnt
End If
Else
Exit For
End If
Next objBlk
End Sub
Sub TEST_SelfOverRide()
Dim strPrmt As String
Dim objEnt As AcadEntity
Dim varPnt As Variant
Dim IsDimension As Boolean
Dim objDim As AcadDimension
On Error GoTo Err_Handler
strPrmt = vbCr & "选择标注对象:"
ThisDrawing.Utility.GetEntity objEnt, varPnt, strPrmt
Set objDim = objEnt
SelfOverRide objDim
Exit Sub
Err_Handler:
MsgBox Err.Number & vbCrLf & Err.Description
End Sub

livingice 发表于 2007-11-30 12:15:00

感谢前辈指教   一定好好研究研究
页: [1]
查看完整版本: 请教如何编程(vb)实现对已有DWG图中的部分尺寸修改