sodatou 发表于 2009-7-13 11:06

粗糙度

通过粗糙度标注研究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的粗糙度标注来做的。用起来没他那个好用。仅用来编程研究,有兴趣的可进一步完善更新。

下面再看图:


运行界面运行结果

jienge 发表于 2009-7-13 21:04

需要学习的太多了

Tao5574909 发表于 2009-7-14 17:18

你也太小题大做了,你建一个图块属性块,不就好了吗!还用在编一个程序吗:lol

偶00然 发表于 2009-7-15 12:54

不错,都是好的经验。学习

不错,都是好的经验。学习

wyb001122 发表于 2009-7-15 21:28

非常好,希望继续

bw825000 发表于 2009-7-16 09:58

呵呵

:o 楼主真牛,佩服
页: [1]
查看完整版本: 粗糙度