[求助]如何得到ucs和wus之间的夹角(已解决)
blockRefObj.Rotation = ThisDrawing.Utility.AngleFromXAxis(ThisDrawing.GetVariable("UCSORG"), _ThisDrawing.GetVariable("UCSXDIR"))
用这样的方法 块的旋转角度似乎是随机性的
详见5楼
斑竹 UcS是已经有了的 如何获取啊
能不能演示一下
参考了网上的代码
Dim CurrUCS As AcadUCS
If ThisDrawing.GetVariable("UCSNAME") = "" Then
With ThisDrawing
Set CurrUCS = .UserCoordinateSystems.Add( _
.GetVariable("UCSORG"), _
.GetVariable("UCSXDIR"), .GetVariable("UCSYDIR"), _
"OriginalUCS")
End With
Else
Set CurrUCS = ThisDrawing.ActiveUCS'current UCS is saved
End If
blockRefObj.TransformBy (CurrUCS.GetUCSMatrix())
结果是块角度没变
其中有段代码改一下
.Utility.TranslateCoordinates(.GetVariable("UCSXDIR"), acUCS, acWorld, 0), _
.Utility.TranslateCoordinates(.GetVariable("UCSYDIR"), acUCS, acWorld, 0), _
这样块的角度就是ucs的两倍角(特殊情况下不一定)
怎么会这样啊 真是无语了
Dim P0(2) As Double
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(P1, TreeView1.SelectedItem.Key, 1, 1, 1, 0, KeyW)
P0(0) = 0
P0(1) = 0
P0(2) = 0
blockRefObj.Rotation = ThisDrawing.Utility.AngleFromXAxis(P0, ThisDrawing.GetVariable("UCSXDIR"))
页:
[1]