参考了网上的代码 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的两倍角(特殊情况下不一定) 怎么会这样啊 真是无语了 |