家具设计C#编程

家具设计C#编程
家具设计C#编程

/*家具设计编程,在C#中用ewdraw在中做了个衣柜,附上图片与代码

以下是C#实现的代码

*/

/*DeleteAll为清空函数,

* 使用该函数将把视图中的所有实体删除

* 与该函数相关的是Delete函数,区别是Delete函数是根据实体ID 号只删除一个实体。

*/

axEWdraw1.DeleteAll();

/*

* Box函数,该函数是做家具时,用的最多的函数。因为盒体是板材的基本形状。

* 掌握了该函数,就可以把做出各样式的柜体。

* 参数:

* 1.基点,也就是box起始点位置

* 2.长 x方向

* 3.宽 y方向

* 4.高 z方向

* 该函数返回一个已经被创建的盒体的ID号(〉0),以备其它函数调用

*/

int frame1= axEWdraw1.Box(new object[] { 0.0, 0, 0 }, 270, 90, 3);//bottom

int frame2 = axEWdraw1.Box(new object[] { 0.0, 0, 3 }, 3, 90, 230);//left

int frame3 = axEWdraw1.Box(new object[] { 270.0 - 3.0, 0, 3 }, 3, 90, 230);//right

int frame4= axEWdraw1.Box(new object[] { 0.0, 0, 230.0 }, 270, 90, 3.0);//top

int frame5= axEWdraw1.Box(new object[] { 0.0, 90 - 3.0, 0.0 }, 270, 3, 230 + 3.0);//back

int frame6= axEWdraw1.Box(new object[] { 100.0, 20, 3 }, 3, 70, 230);//mid1;

int frame7= axEWdraw1.Box(new object[] { 100.0 + 70.0, 20, 3 }, 3, 70, 230);//mid1;

/*SetEntTexture是设置实体的纹理

* 参数:

* 1.要设置纹理的实体的ID号

* 2.纹理图形的的文件名,要确保文字是存在的。可以支持bmp,jpg。 * 3与4是UV缩放值,一般都取1,不需要动

* 5与6是UV重复值,一般都取1,不需要动

* 7与8是UV的原点,一般都取0,不需要动

*/

axEWdraw1.SetEntTexture(frame1, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(frame2, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(frame3, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(frame4, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(frame5, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

0.0);

axEWdraw1.SetEntTexture(frame7, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

/*

* AddIDToBuffer在此的作用是为了在最后形成组,先将要成为组成员的实体的ID号放入缓存。

* 参数只有一个,就是ID号

* 需要注意的是,这个函数与ClearIDBuffer是一对,ClearIDBuffer在最后使用。

*/

axEWdraw1.AddIDToBuffer(frame1);

axEWdraw1.AddIDToBuffer(frame2);

axEWdraw1.AddIDToBuffer(frame3);

axEWdraw1.AddIDToBuffer(frame4);

axEWdraw1.AddIDToBuffer(frame5);

axEWdraw1.AddIDToBuffer(frame6);

axEWdraw1.AddIDToBuffer(frame7);

int tab1= axEWdraw1.Box(new object[] { 0, 20, 230 - 50 }, 100, 70, 3);//table1

int tab2 = axEWdraw1.Box(new object[] { 100.0, 20, 230 - 50 }, 70, 70, 3);//table2

int tab3 = axEWdraw1.Box(new object[] { 100.0 + 70.0, 20, 230 - 50 }, 100, 70, 3);//table3

int tab4 = axEWdraw1.Box(new object[] { 100.0, 20, 230 - 50 - 90 }, 70, 70, 3);//table4

int tab5 = axEWdraw1.Box(new object[] { 100.0 + 70.0, 20, 25 + 3.0 }, 100, 70, 3);//table5

int tab6= axEWdraw1.Box(new object[] { 100.0, 20, 50 }, 70, 70, 3);//table6

axEWdraw1.AddIDToBuffer(tab1);

axEWdraw1.AddIDToBuffer(tab2);

axEWdraw1.AddIDToBuffer(tab3);

axEWdraw1.AddIDToBuffer(tab4);

axEWdraw1.AddIDToBuffer(tab5);

axEWdraw1.AddIDToBuffer(tab6);

0.0);

axEWdraw1.SetEntTexture(tab2, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(tab3, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(tab4, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(tab5, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(tab6, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

/*Cylinder2P是根据柱体轴线,底和顶轴线的两个端点创建柱体,参数分别为这个两个端点*/

int c1 = axEWdraw1.Cylinder2P(1.5, new object[] { 0.5, 30, 230 - 50 - 10 }, new object[] { 269.5, 30, 230 - 50 - 10 });

/*SetEntColor 设置实体颜色色,参数是颜色索引,可以用RGBToIndex将RGB值转为索引值*/

axEWdraw1.SetEntColor(c1, axEWdraw1.RGBToIndex(255, 255, 255));

axEWdraw1.AddIDToBuffer(c1);

int c2 = axEWdraw1.Cylinder2P(1.5, new object[] { 0.5, 30, 90 + 1.5 }, new object[] { 100 + 2.5, 30, 90 + 1.5 });

axEWdraw1.SetEntColor(c2, axEWdraw1.RGBToIndex(255, 255, 255));

axEWdraw1.AddIDToBuffer(c2);

//drawer

int drawersub1 = axEWdraw1.Box(new object[] { 100.0 + 2.0, 20, 3 }, 3, 70, 15);//sub1;

int drawersub2= axEWdraw1.Box(new object[] { 100.0 + 70 - 2.0, 20, 3 }, 3, 70, 15);//sub2;

int drawersub3 = axEWdraw1.Box(new object[] { 100.0 + 2.0, 20, 3 }, 70, 3, 15);//sub3

int drawersub4 = axEWdraw1.Box(new object[] { 100.0 + 2.0, 90 - 2.0 - 3.0, 3 }, 70, 3, 15);//sub4

int drawersub5 = axEWdraw1.Box(new object[] { 100.0 + 2.0, 20, 3 }, 70, 70, 3);//sub5

int handle1= axEWdraw1.Box(new object[] { 100.0 + 35, 20 - 2.0, 3 + 7.5 }, 4, 3, 2);//

axEWdraw1.AddIDToBuffer(drawersub1);

axEWdraw1.AddIDToBuffer(drawersub2);

axEWdraw1.AddIDToBuffer(drawersub3);

axEWdraw1.AddIDToBuffer(drawersub4);

axEWdraw1.AddIDToBuffer(drawersub5);

axEWdraw1.AddIDToBuffer(handle1);

axEWdraw1.SetEntTexture(drawersub1, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(drawersub2, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(drawersub3, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(drawersub4, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(drawersub5, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

axEWdraw1.SetEntTexture(handle1, "test.bmp", 1, 1, 1, 1, 0.0, 0.0);

/*Copy为复制函数,是较常用函数。用该函数可以复制实体。可用于相同板材位置不同时,可以直接复制生成。

*参数:

*1.要复制的实体ID

*2.要复制实体位置的起始点

*3.复制后实体位置的目标点

*复制成功后,返回一个〉0的ID号,也就是新颜色的复制实体

*/

int drawer2 = axEWdraw1.Copy(drawersub1, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

drawer2 = axEWdraw1.Copy(drawersub2, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

drawer2 = axEWdraw1.Copy(drawersub3, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

drawer2 = axEWdraw1.Copy(drawersub4, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

drawer2 = axEWdraw1.Copy(drawersub5, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

drawer2= axEWdraw1.Copy(handle1, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 });

axEWdraw1.AddIDToBuffer(drawer2);

/*Copy为复制函数,是较常用函数。用该函数可以复制实体。可用于相同板材位置不同时,可以直接复制生成。

*参数:

*1.要复制的实体ID

*2.要复制实体位置的起始点

*3.复制后实体位置的目标点

*复制成功后,返回一个〉0的ID号,也就是新颜色的复制实体

*/

int drawer3 = axEWdraw1.Copy(drawersub1, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

drawer3 = axEWdraw1.Copy(drawersub2, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

drawer3 = axEWdraw1.Copy(drawersub3, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

drawer3 = axEWdraw1.Copy(drawersub4, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

drawer3 = axEWdraw1.Copy(drawersub5, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

drawer3= axEWdraw1.Copy(handle1, new object[] { 0, 0, 0 }, new object[] { 0, 0, 15 * 2.0 });

axEWdraw1.AddIDToBuffer(drawer3);

/*MakeGroupWithPlane函数,是指将被添加到ID缓存的实体集合做成一个组.

* 参数:

* 1.组名

* 2.组的基点

* 3.组的吸附面的原点

* 4.组的吸附面的方向

* 5.组的吸附面的X方向

* 注意:也可以在创建组后,使用SetGroupPlaneByBoxFace来设置组的吸附面,SetGroupPlaneByBoxFace的参数为1..6 , 分别表示,前向面,后向面,左向面,右向面,顶面,底面.

*/

axEWdraw1.MakeGroupWithPlane("cabinet", new object[] { 0, 0, 0 }, new object[] { 0, 0, 0 }, new object[] { 0, -1, 0 }, new object[] { 1, 0, 0 });

//ClearIDBuffer与AddIDToBuffer对应,用来清空ID缓存

axEWdraw1.ClearIDBuffer();

/*SetViewCondition 设置视图的基本方向,较常用,一般设置为8,东南方向*/

axEWdraw1.SetViewCondition(8);

/*SetBackGroundColor 设置背景色,参数是颜色索引,可以用RGBToIndex将RGB值转为索引值*/

axEWdraw1.SetBackGroundColor(axEWdraw1.RGBToIndex(255, 255, 255));

相关主题
相关文档
最新文档