控件下载地址:http://www.mxdraw.com/download.html。
运行MxDraw3d6.0(20180604)TryVersion.exe,这是一个自解压包的exe,找到解压目录后点击运行MxDraw3d6.0(20180604)TryVersion.exe,会在当前目录下创建一个MxDraw3d60文件夹。
文件夹中包含三个子文件夹。
1、Bin文件夹是发行版和调试版的应用例子程序\Bin\vc100\Test3d.exe点击即可运行。
2、Mx3D文件包含C#、C++、IE、版本的sample代码直接可以编译运行。
3、MxDraw3dCode文件夹是lib文件和各种头文件。
注册控件之前请先退出杀毒软件(如360杀毒软件),以 管理员身份(否则会注册失败)运行 MxDraw3d60目录下的RegMxDraw3d.bat。
若是没有以管理员方式运行则可能出现如下情况:
运行Visual Studio,点击左上角【文件(F)】->【新建(N)】->【项目(P)】,选择Visual C#,使用Windows 窗体应用 (.NET Framework) 新建一个工程。
在工具箱中选择“选择项”,的“选择工具项”中选中“com组件”找到控件 MxDrawX3d Control ,选中点击确定。然后再工具箱找到我们的控件拖入界面即可。(如下)
1、在工程创建完成后,打开界面。找到工具箱,在工具箱中的空白处右单机鼠标找到选择项并点击进入。然后再选择项中点击com组件,并找到 MxDrawX3d Control 。点击勾选。
2、回到工具箱,会发现添加了如下控件,将其控件拖入界面即可。
添加程序集引用: using MxDrawX3dLib :
以绘制基本的三维实体为列:绘制圆柱。
//设置实体颜色索引 axMxDrawX3d1.DrawCADColorIndex = 5; //设置实体材质索引 axMxDrawX3d1.DrawMaterial = 3; //绘制圆柱20:半径,100 :高度 axMxDrawX3d1.DrawCylinder(20, 100); axMxDrawX3d1.ZoomAll();
运行效果如下:

简单的实体布尔运算:
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();
运行效果如下:
平移、旋转、透明度、纹理:
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();
运行:平移、旋转、透明度、纹理实例效果如下: