欢迎加入,迈克
组合框中有字符串,因此
必须将其转换为双精度
看看DistanceToReal方法
在帮助文件中(将选项更改为
标准,我在那里设置了“A工程”)
参见示例(仅在A2008上测试)
- Option Explicit
- 'Combo Box for Panel Sizes
- Private Sub UserForm_Activate()
- cmbWidth.AddItem "1'-0"""
- cmbWidth.AddItem "1'-0 1/2"""
- cmbWidth.AddItem "1'-1"
- cmbLength.AddItem "10'-0"""
- cmbLength.AddItem "10'-0 1/2"""
- cmbLength.AddItem "10-1"""
- cmbThickness.AddItem "6"""
- cmbThickness.AddItem "8"""
- cmbThickness.AddItem "10"""
- cmbThickness.AddItem "12"""
- End Sub
- 'Create Panel
- Private Sub cmdCreatePanel_Click()
- Dim varPick As Variant
- Dim dblLength As Double
- Dim dblWidth As Double
- Dim dblHeight As Double
- Dim dblCenter(2) As Double
- Dim objEnt As Acad3DSolid
- Me.hide
- 'get the input from user
- With ThisDrawing.Utility
- .InitializeUserInput 1
- varPick = .GetPoint(, vbCr & "Pick a corner point: ")
- .InitializeUserInput 1 + 2 + 4, ""
- dblLength = .DistanceToReal(cmbLength.Text, acEngineering)
- .InitializeUserInput 1 + 2 + 4, ""
- dblWidth = .DistanceToReal(cmbWidth.Text, acEngineering)
- .InitializeUserInput 1 + 2 + 4, ""
- dblHeight = .DistanceToReal(cmbThickness.Text, acEngineering)
- End With
- 'calculate center point from input
- dblCenter(0) = CDbl(varPick(0)) + (dblLength / 2)
- dblCenter(1) = CDbl(varPick(1)) + (dblWidth / 2)
- dblCenter(2) = CDbl(varPick(2)) + (dblHeight / 2)
- 'draw the entity
- Set objEnt = ThisDrawing.ModelSpace.AddBox(dblCenter, dblLength, _
- dblWidth, dblHeight)
- objEnt.History = True
- objEnt.Update
- ThisDrawing.Regen acActiveViewport
- Me.Show
- End Sub
- Private Sub cmdExit_Click()
- Unload Me
- End Sub
~'J'~ |