粗糙度
通过粗糙度标注研究cad属性块(三)2007-10-02 14:35tag1:='范围';prompt1:='加工范围:';
value1:=combobox1.Text;
tag2:='加工余量';
prompt2:='加工余量:';
value2:=combobox2.Text;
tag3:='粗糙度下限';
prompt3:='粗糙度下值:';
value3:=combobox3.Text;
tag4:='粗糙度上限';
prompt4:='粗糙度上限值:';
value4:=combobox4.Text;
tag5:='加工要求';
prompt5:='加工要求:';
value5:=combobox5.Text;
tag6:='取样长度';
prompt6:='取样长度:';
value6:=combobox6.Text;
tag7:='波纹长度';
prompt7:='波纹长度:';
value7:=combobox7.Text;
tag8:='纹理';
prompt8:='加工纹理:';
value8:=combobox8.Text;
//tag9:='旋转角度';
//prompt9:='旋转角度:';
//value9:=edit1.Text;
blockobj:=caddoc.blocks.add(point1,blockname);//添加块
//分别为块添加属性
att1:=blockobj.AddAttribute(height,mode,prompt1,point6,tag1,value1);
att2:=blockobj.AddAttribute(height,mode,prompt2,point7,tag2,value2);
att3:=blockobj.AddAttribute(height,mode,prompt3,point8,tag3,value3);
att4:=blockobj.AddAttribute(height,mode,prompt4,point9,tag4,value4);
att5:=blockobj.AddAttribute(height,mode,prompt5,point10,tag5,value5);
att6:=blockobj.AddAttribute(height,mode,prompt6,point11,tag6,value6);
att7:=blockobj.AddAttribute(height,mode,prompt7,point12,tag7,value7);
att8:=blockobj.AddAttribute(height,mode,prompt8,point14,tag8,value8);
//在块中画线。
line1:=blockobj.addline(point1,point2);
line2:=blockobj.addline(point1,point4);
if checkbox1.Checked=true then//当相同要求时,要画圆及圆后面的那根线。
begin
circle1:=blockobj.addcircle(point4,1.5);
line4:=blockobj.addline(point4,point5);
end;
if radiobutton1.Checked=true then//当“去除材料”时画三角形水平线。
begin
line3:=blockobj.addline(point2,point3);
end;
if radiobutton2.Checked=true then//当“不除材料”时画圆。
begin
circle2:=blockobj.addcircle(point13,2.89);
end;
//下面为当最右边三个下拉框(从上到下分别代表加工要求,取样长度,波纹长度)有一个不为空时,即有内容时要画右边的那根水平线。
if ((combobox5.Text<>' ') or (combobox6.Text<>' ') or (combobox7.Text<>' ')) then
begin
line4:=blockobj.addline(point4,point5);
end;
caddoc.modelspace.InsertBlock(caddoc.utility.getpoint(,'请指定点的位置:'),blockname,1,1,1,0);//插入块,用鼠标在屏幕上点取插入点。最后三个“1”及一个“0”分别代表,在x,y,z方向上的缩放比例及块的旋转角度。在此我们不将块旋转,因而用0,经试验,当输入一个角度时不按实际角度来旋转,不知为何原因。有兴趣的可进一步研究一下,看是如何算的。
caddoc:=Unassigned;
cad:=Unassigned;
close;
end;
本想把编译好的也上传上来。可是找不到空间,我原来有个空间上传不上去。本例还不很完善,本例模仿华途CAD的粗糙度标注来做的。用起来没他那个好用。仅用来编程研究,有兴趣的可进一步完善更新。
下面再看图:
运行界面运行结果 需要学习的太多了 你也太小题大做了,你建一个图块属性块,不就好了吗!还用在编一个程序吗:lol
不错,都是好的经验。学习
不错,都是好的经验。学习 非常好,希望继续呵呵
:o 楼主真牛,佩服
页:
[1]