BlockReference br = new BlockReference(new Point3d(10, 10, 0), CreateEmployeeDefinition());
为
BlockReference br = new BlockReference(pos, CreateEmployeeDefinition());
· 替换
xRec.Data = new ResultBuffer( new TypedValue((int)DxfCode.Text, "Earnest Shackleton"), new TypedValue((int)DxfCode.Real, 72000), new TypedValue((int)DxfCode.Text, "Sales"));
为
xRec.Data = new ResultBuffer( new TypedValue((int)DxfCode.Text, name), new TypedValue((int)DxfCode.Real, salary), new TypedValue((int)DxfCode.Text, division));
把这些常数加入到try语句后面: string empName = "Earnest Shackleton"; string divName = "Sales"; double salary = new double(); salary = 10000; Point3d position = new Point3d(0, 0, 0); bool gotPosition = new bool(); //布尔值用来判断用户是否已输入职位 gotPosition = false;
3) 现在让我们提示用户输入值。我们先使用PromptXXXOptions类来初始化要显示的提示字符串。 //提示输入每个雇员的详细资料 PromptStringOptions prName = new PromptStringOptions("Enter Employee Name <" + empName + ">"); PromptStringOptions prDiv = new PromptStringOptions("Enter Employee Division <" + divName + ">"); PromptDoubleOptions prSal = new PromptDoubleOptions("Enter Employee Salary <" + salary + ">"); PromptPointOptions prPos = new PromptPointOptions("Enter Employee Position or");
注意,提示字符串用尖括号来显示变量的值。这是AutoCAD用来提示用户这个值为缺省值。 4) 当提示用户输入职位时,我们也提供了一个关键字列表选项,如名字、部门和薪水。如果用户想要在选择一个点的时候改变为其它值,他可以选择那个关键字。 一个命令提示的例子如下: Command: CREATE Enter Employee Position or [Name/Division/Salary]:
要创建一个雇员,用户会选择一个点而其它的值被设置为缺省值。如果用户要改变其它的值,如名字,他可以输入”N”或全名”Name”,然后输入名字: Command: CREATE Enter Employee Position or [Name/Division/Salary]:N Enter Employee Name <Earnest Shackleton>: