GetAngle用于让用户指定角度值
Document doc = Application.DocumentManager.MdiActiveDocument;
double angle = 0.0;
PromptAngleOptions options = new PromptAngleOptions("\n请指定角度: ");
options.UseBasePoint = true;
options.BasePoint = new Point3d(0, 0, 0);
options.DefaultValue = Math.PI;
options.UseDefaultValue = true;
options.UseAngleBase = true;
PromptDoubleResult result = doc.Editor.GetAngle(options);
switch (result.Status)
{
case PromptStatus.OK:
angle = result.Value;
doc.Editor.WriteMessage("\nAngle = " + angle);
break;
case PromptStatus.Cancel:
doc.Editor.WriteMessage("\n用户取消了输入");
break;
default:
break;
}
PromptAngleOptions用于设置用户输入的控制项。
UseBasePoint和BasePoint选项用于控制是否从BasePoint到当前鼠标位置绘制一条示意线以示意角度。
GetAngle返回值的范围是[0, 2*Math.PI),始终返回的是弧度值,用户输入的是角度值。
UseAngleBase为true时,GetAngle的返回值会受到系统变量ANGBASE的影响。
UseAngleBase为false时,GetAngle返回的值代表的含义:
在UCS下,向量(1, 0, 0)逆时针(不管ANGDIR为0还是1)旋转到用户指定的向量处的旋转角度。
当用户是直接输入角度数值时,用户指定的向量为通过角度数值和ANGDIR确认;当用户是通过鼠标点击时,用户指定的向量为从BasePoint到用户指定点。