DaveW 发表于 2006-7-18 12:00:14

Utility.GetPoint问题

我有一个表单呈现给用户。在表单上,系统会询问用户是希望获得 2 点之间的距离还是指定长度。然后我画了墙。
如果用户指定长度,则我只将第二个点用于旋转角度。
如果用户说从2点获得距离,然后选择它们,它也可以正常工作。
但是,有时用户希望指定第一个点并在命令行中输入第二个点。
示例:
用户选择第一个点,然后在提示“选择墙的第二个点:”时,用户键入@48,0,然后输入

用户选择第一个点,然后在提示时“选择墙的第二个点:”,用户键入48,0,然后输入。
无论用户键入此内容的原因是什么,返回的值在引用第一个点时始终是错误的。
我尝试过这个绘图。Utility.TranslateCoordinates(Point2, acWorld, acUCS, False),但它仍然给了我错误的数字。
有人有任何想法或建议吗?我不想在表单上指定第三个选项并显示不同的提示。这样,用户可以在选择第一个点后处理不同的情况。
谢谢,
戴夫

    Point1 = thisdrawing.Utility.GetPoint(, "Select first point of wall: ")
    Point2 = thisdrawing.Utility.GetPoint(, "Select second point of wall: ")
   
    Point2(2) = Point1(2)

    retAngle = thisdrawing.Utility.AngleFromXAxis(Point1, Point2)
   
   
   
    If Check1.value = vbChecked Then
      WallWidth = CDbl(Text4.Text)
    Else
      xx = Point1(0) - Point2(0)
      yy = Point1(1) - Point2(1)
      zz = Point1(2) - Point2(2)
      WallWidth = Round(Sqr((Sqr((xx ^ 2) + (yy ^ 2)) ^ 2) + (zz ^ 2)), 5)
    End If

**** Hidden Message *****

Atook 发表于 2006-7-18 12:32:55

我不确定为什么它不适合你,你是否在第二个getpoint函数上使用相对变量?
这可能有助于您调试一些。
Public Sub Test()
Dim OnePoint as Variant
Dim TwoPoint As Variant
OnePoint = ThisDrawing.Utility.GetPoint(, “Pick 1st point:”)
TwoPoint = ThisDrawing.Utility.GetPoint(OnePoint, “And the second?”)
MsgBox “Distance” & Str(Distance(OnePoint, TwoPoint)) & “ X:” & OnePoint(0) - TwoPoint(0) & _
“ Y:” & OnePoint(1) - TwoPoint(1), , “One Fish Two Fish”
End Sub

DaveW 发表于 2006-7-18 12:47:22

效果很好!
谢谢。
我以为我错过了一些重要的东西。
戴夫
页: [1]
查看完整版本: Utility.GetPoint问题