你好。这是我的问题。
我画了几个圆,我想计算它们的质心。
我使用组码过滤器选择它们。
到现在为止,一直都还不错。但是我为他们的中心找到的合作者,在WCS,我需要他们在UCS。我发现了一些关于“效用.平移坐标”(Utility.TranslateCoordinates)函数的信息,但在我的例子中使用它时遇到了问题。
这是代码。
- Public Sub CalcImbinare()
- Dim entObj As AcadEntity
- Dim ssetObj As AcadSelectionSet
- Dim grpCode(0) As Integer
- Dim dataVal(0) As Variant
- grpCode(0) = 0
- dataVal(0) = "CIRCLE"
- On Error Resume Next
- Set ssetObj = ThisDrawing.SelectionSets.Add(SetName)
- If Err.Number <> 0 Then
- Set ssetObj = ThisDrawing.SelectionSets.Item(SetName)
- End If
- ssetObj.Clear
- Set ssetObj = ThisDrawing.SelectionSets.Add("SS01")
- ssetObj.SelectOnScreen grpCode, dataVal
- ' SELECTION OF THE CIRCLES IS COMPLETE
- ' NOW I"M TRYING TO USE THE CIRCLE COORDONATES IN MY CALCULATIONS,
- ' BUT I GET THEM IN WCS, AND I NEED THEM IN UCS
-
- Dim xg, yg As Double
- Dim pct As Variant
- ' I TRIED ALSO " pcs (0 to 2) as Double" TYPICAL FOR A POINT VARIABLE
- ' STILL THE SAME RESULT
- xg = 0 : yg = 0 :
- For i = 0 To ssetObj.Count - 1
- Set pct = ThisDrawing.Utility.TranslateCoordinates(ssetObj.Item(i).Center, acWorld, acOCS, True)
- xg = xg + pct(0)
- yg = yg + pct(1)
- Next i
- xg = xg / ssetObj.Count
- yg = yg / ssetObj.Count
- End Sub
结果是什么都没有发生,变量“pct”没有得到任何值。
提前感谢! |