LOGO
帮助文档
旧版文档
控件下载视频演示控件注册新建工程示例绘制圆柱简单的实体布尔运算平移、旋转、透明度、纹理
控件下载

控件下载地址:http://www.mxdraw.com/download.html


3d0.png


运行MxDraw3d6.0(20180604)TryVersion.exe,这是一个自解压包的exe,找到解压目录后点击运行MxDraw3d6.0(20180604)TryVersion.exe,会在当前目录下创建一个MxDraw3d60文件夹。


3d1.png


文件夹中包含三个子文件夹。


3d2.png


1、Bin文件夹是发行版和调试版的应用例子程序\Bin\vc100\Test3d.exe点击即可运行。


3d3.png


2、Mx3D文件包含C#、C++、IE、版本的sample代码直接可以编译运行。


3、MxDraw3dCode文件夹是lib文件和各种头文件。

视频演示

控件注册

注册控件之前请先退出杀毒软件(如360杀毒软件),以 管理员身份(否则会注册失败)运行 MxDraw3d60目录下的RegMxDraw3d.bat。


3d4.png


若是没有以管理员方式运行则可能出现如下情况:


3d5.png

新建工程

运行Visual Studio,点击左上角【文件(F)】->【新建(N)】->【项目(P)】,选择Visual C#,使用Windows 窗体应用 (.NET Framework) 新建一个工程。


3d6.png


在工具箱中选择“选择项”,的“选择工具项”中选中“com组件”找到控件 MxDrawX3d Control ,选中点击确定。然后再工具箱找到我们的控件拖入界面即可。(如下)


1、在工程创建完成后,打开界面。找到工具箱,在工具箱中的空白处右单机鼠标找到选择项并点击进入。然后再选择项中点击com组件,并找到 MxDrawX3d Control 。点击勾选。


3d7.png


3d8.png


2、回到工具箱,会发现添加了如下控件,将其控件拖入界面即可。


3d9.png


添加程序集引用: using MxDrawX3dLib


3d10.png

示例绘制圆柱

以绘制基本的三维实体为列:绘制圆柱。


 //设置实体颜色索引
 axMxDrawX3d1.DrawCADColorIndex = 5;
 //设置实体材质索引
 axMxDrawX3d1.DrawMaterial = 3;
 //绘制圆柱20:半径,100 :高度
 axMxDrawX3d1.DrawCylinder(20, 100);
 axMxDrawX3d1.ZoomAll();


运行效果如下:


3d11.png

简单的实体布尔运算

简单的实体布尔运算:


            MxDraw3dMakeShape make = new MxDraw3dMakeShape();
            //绘制圆球(0,0,0)球的原点,40球的半径
            MxDraw3dShape Sphere = make.DoSphere(0, 0, 0, 40);
            //绘制方块(-10, -50, -10) 方块的原点,(20,100,20)方块的长宽高
            MxDraw3dShape Box = make.DoBox(-10, -50, -10, 20,100,20);
            //进行布尔相加运算
            MxDraw3dShape ShapeAdd = make.DoAdd(Sphere, Box);
            //设置实体的颜色和材质
            ShapeAdd.Mx3dColorIndex = MxDrawX3dLib.MX_3DCOLORINDEX.Mx3dSLATEGRAY4;
            ShapeAdd.Mx3dMaterial = MxDrawX3dLib.MX_3DMATERIAL.Mx3dBRASS;
            //设置显示模式
            ShapeAdd.SetDisplayMode(1);
            //绘制得到的实体 
            axMxDrawX3d1.DrawEntity(ShapeAdd);
            //居中显示
            axMxDrawX3d1.ZoomAll();
 
            MxDraw3dShape Sphere1 = make.DoSphere(100, 0, 0, 40);
            MxDraw3dShape Box1 = make.DoBox(90, -50, -10, 20, 100, 20);
            MxDraw3dShape ShapeCut = make.DoCut(Sphere1, Box1);
            ShapeCut.Mx3dColorIndex = MxDrawX3dLib.MX_3DCOLORINDEX.Mx3dMATRABLUE;
            ShapeCut.Mx3dMaterial = MxDrawX3dLib.MX_3DMATERIAL.Mx3dBRASS;
            ShapeCut.SetDisplayMode(1);
            axMxDrawX3d1.DrawEntity(ShapeCut);
            axMxDrawX3d1.ZoomAll();


运行效果如下:


3d12.png

平移、旋转、透明度、纹理

平移、旋转、透明度、纹理:


           MxDraw3dMakeShape make = new MxDraw3dMakeShape();
            //绘制方块
            MxDraw3dShape shape2 = make.DoBox(0, 0, 0, 300, 300, 15);
            shape2.SetDisplayMode(1);
            //设置透明度
            shape2.Transparency = 0.5;
            axMxDrawX3d1.DrawEntity(shape2);
            axMxDrawX3d1.ZoomAll();
            //平移旋转构造
            MxDraw3dShapeTransformation r2 = new MxDraw3dShapeTransformation();
            //旋转基点坐标
            MxDraw3dPoint ptRot = new MxDraw3dPoint();
            ptRot.x = 1000;
            ptRot.y = 300;
            ptRot.z = 0;
            //旋转法向量
            MxDraw3dVector pvRot = new MxDraw3dVector();
            pvRot.x = 0;
            pvRot.y = 1;
            pvRot.z = 0;
            //平移函数绕基点向量轴旋转90
            r2.Rotation(ptRot, pvRot, 90 * 3.14159265 / 180.0);
            MxDraw3dShapeTransformation s2 = new MxDraw3dShapeTransformation();
            //平移基点
            MxDraw3dPoint ptMove = new MxDraw3dPoint();
            ptMove.x = 0;
            ptMove.y = 0;
            ptMove.z = 0;
            //缩放因子
            s2.scale(ptMove, 1.0);
            //平移向量
            MxDraw3dVector pvMove = new MxDraw3dVector();
            pvMove.x = -600;
            pvMove.y = 0;
            pvMove.z = 0;
            MxDraw3dShapeTransformation m2 = new MxDraw3dShapeTransformation();
            //于基点向量平移
            m2.Move(pvMove);
            //计算由m2和r2组成的转换
            m2.multiply(r2);
            m2.multiply(s2);
            shape2.TransformShape(m2);
            //创建纹理实体
            MxDraw3dTexturedShape ts2 = make.CreateTexturedShape(shape2);
            //读取纹理图片
            ts2.SetTextureFileName(@"K:\wood01.bmp");
            //启用纹理映射
            ts2.SetTextureMap(true);
            //缩放纹理(面部的百分比)。
            ts2.SetTextureScale(true, 1, 1);
            //设置每个面上纹理的出现次数。
            ts2.SetTextureRepeat(true, 1, 1);
            //更改纹理的原点(0,0)将被映射到曲面(UOrigin,VOrigin)
            ts2.SetTextureOrigin(true, 0, 0);
            ts2.SetDisplayMode(3);
            axMxDrawX3d1.DrawEntity(ts2);
            axMxDrawX3d1.ZoomAll();


运行:平移、旋转、透明度、纹理实例效果如下:


3d13.png