Date: 2010-02-09 12:24:27Written By MxDraw

历史更新内容

  • Tags: 更新 , 积分 Counts:14 次
控件简介:
 
与常见Vectordraw控件类似,梦想绘图控件是个CAD二维绘图控件,控件使用VC++开发,具有完全自主平台。控件是在对AutoCAD平台的深入研究的基础上,模仿AutoCAD的系统架构,具有非常稳定的性能和与ARX兼容的编程接口。
 
 控件有高效准确的显示模块,没有采用传统的四叉树搜索算法,而是自创的空间数据搜索算法,搜索速度比四叉树搜索更快,具有十万级的实体处理能力,具备开发DWG图库管理,DWG浏览与编辑,GIS地形图显示,参数化绘图等专业软件的条件。是非常具有潜力和发展前景的控件。
 
控件支持现在所有DWG文件格式。
 
控件提供ActiveX版本,可供C#JavaDelphiVB等语言调用,也能在网页上使用,并且ActiveX的源代码在控件安装目录下,使用者可以自由修改并导出所需的接口。
 
控件接口丰富,提供DWG图纸显示,编辑功能。导出有绘直线、PL线、文字、圆、圆弧、填充对象,视区的显示控制等接口,可以控制显示某个区域的图形,还有写扩展数据等接口
 
功能说明:
 
文件操作功能:读写dwgdxfdwf文件,打开jpg,bmp文件,打开网络文件,保存DWG文件,把文件保存到服务器上,把图形中指定区域绘制到bmp图上或绘制到CDC对象上,把某个实体绘制到 CDC对象上,pdf输出。
 
图纸浏览与打印功能:放大、缩小、放大镜、鸟瞰、漫游、视图旋转,布局视口显示,块、块属性显示,标注实体显示,图形无锯齿高质量显示等功能。打印图纸。
 
参数化绘图:绘直线、圆、圆弧、PL线、样条线、椭圆、椭圆弧、文字,点,块等,填充功能,可以自定义线型,文字样式,填充图案。
 
图形编辑:绘图捕捉,夹点编辑,删除操作,修改图层,线型等属性,遍历数据库,读写扩展数据,扩展记录,等其它编辑功能。
 
图面处理与交互: 构造选择集,图面搜索,与用交互取点,动态拖放显示,鼠标事件反应器。
 
几何功能:离散曲线,求曲线交点,曲线长度,面积,曲线切线方向,最近点,曲线任一位置的点和该点到起始点的距离,判断一个点是否在一个闭合区域内等功能。
 
其它功能:实体闪烁,实体信息动态提示,相关接口使用例程,帮助文档。
 
编程接口:编程接口丰富,控件提供两个版本,DLL版本,ActiveX版本。DLL版本使用VC2008开发,有ARX编程接口(图层,块表,块表记录,线形表,文字样表读写功能,读写扩展数据,扩展记录,用户交互取点,动态拖放显示,几何计算库)。ActiveX版本,使用COM技术封装,类似于AutoCAD VBA编接口,可以在C#JavaDelphiVB,网页等语言中使用。
其它功能:实体闪烁,实体信息动态提示,相关接口使用例程,帮助文档
 
 
更新记录:
 
1.        2007.07.21 增加了对AcDb2dPolyline,AcDb3dPolyline,AcDbSolid的显示支持.
 
2.        2007.7.28
增加了对AcDbMText的显示支持.
 
3.        2007.8.12更新
增加把dwg文件保存为位图的功能函数 // dwg 文件存成位图
 
4.        2007.8.26更新
增加ARX编程接口,增加保存dwg文件函数,增加绘表例子.
 
5.        2007.9.2更新
A.        修正了块中圆弧显示错误
B.        修正了文字显示位置不准确错误
C.        修正椭圆弧显示错误
D.       修正块的位置在UCS坐标时,显视位置不对问题
 
6.        2007.9.9更新
A.        修改块中实体颜色显示错误
B.        修改线型随层时的问题
 
7.        2007.12.16更新
A.       增加插入图块的功能。
B.        把控件做成ActiveX控件,并可在网页使用控件。
C.        增加往实体读写扩展数据功能。
 
8.       2008.03.23更新
A.         增加dwg局部保存功能
B.         增加动态绘制矩形框例程,并把结果保存到dwg文件中
C.         shx字体文件的精确显示,比如说字体中的圆弧显示,并丰富了控件中的字体文件,使用dwg中的字体显示更为准确.字体的镜向,颠倒显示.
 
9.        2008.01.29更新
A.        增加帮助文件
B.        增加把dwg文件信息写到文本文件的ReadDwgToFile 例程
C.        增加绘制一个简单图形,存在到dwg文件的WriteDwgFile例程
D.       增加regen重新生成图形命令
 
10.    2008.03.30更新
A.        增加TrueType字体显示
B.        增加AcDbTrace实体
C.       修正前一个版对填充对象显示的内存泄漏问题.
 
11.   2008.04.04更新
A.        修正hatch图案显示错误
B.        显示速度提高很多
 
12.   2008.04.19更新
A.            显示速度又进一步提高,与AutoCAD有得一比了
 
13.   2008.05.04更新
    修正了前一个版本显示速度提高后的一些显示错误。
 
14.   2008.05.28更新:
  
A.         重写显示控制模块,使用显示时的视区变化也支持回退操作.
B.         并修改了插入图块后,undo后再插入图块会出错的问题
C.         对起点与终点相同的圆弧计算出错的问题
 
15.   2008.06.22更新
 
A.        1.增加Spline线的支持
B.        2.增加返回数据库的外包范围坐标
C.        3.加入控件授权显示信息
 
16.   2008.10.06更新
A.        修正尺寸标注中的MTEXT文字显示不正确问题.
B.        控件工具条改成从mxt文件加载,这样用户通过修改mxt文件可以自定义工具
C.        修改VB使用控件,当使用命令时,这时退出程序,但VB程序一直没有退出,在进程管理器中能看到的问题
D.       修正AcDb2dPolyline,AcDbPolyline的返回标高函数总是返回零的问题
E.        修正控件在IE使用容易出错的问题,使用控件在IE使用更为稳定
F.         修正控件控件在IE中打开,提示控件安全警告问题,具体情况如下:
G.        增加打印功能
H. 
I. 
J.下载 文件大小:68.01 KB,下载次数:0 下载 文件大小:85.87 KB,下载次数:0
 
 
 
17.   2008.10.18更新
A.        增加读取属性块中属性功能调用代码如下:
AcDbObjectIterator* pAttribIter = spBlkRef->attributeIterator();
 if(pAttribIter != NULL)
 {
  acutPrintf(_T("\n
块的属性值为:"));
  for(;!pAttribIter->done();pAttribIter->step() )
  {
            //
打开块属性对象.
   AcDbObjectPointer<AcDbAttribute> spAttribute(pAttribIter->objectId(),AcDb::kForRead);
   acutPrintf(_T("\n %s"),spAttribute->textStringEx());
  }
  acutPrintf(_T("\n"));
  //
删除块属性递代器指针.
delete pAttribIter;
 }
 else
 {
  acutPrintf(_T("\n
选择的不块不带属性"));
 }
B.        增加实体名柄类AcDbHandle,并可以把实体名柄与实体ID互相转换。
C.        增加闪烁实体功能和停闪烁接口调用代码如下:
//
闪烁实体.
static bool TwinkeEnt(AcDbObjectId id);
//
停闪东实体
static bool StopTwinkeEnt(AcDbObjectId id);
//
停闪止所有实体
static bool StopAllTwinkeEnt(MXDRAWOCXHANDLE hOcx);
D.       增加构建选择集函数acedSSGet,acedSSLength,acedSSFree,acedSSName,现在支持带过滤的X
 
struct resbuf* filter = acutBuildList(8,layer,RTDXF0, _T("LWPOLYLINE"),-4,_T("<OR"),62,0,
  62,1,62,256,-4,_T("OR>"),0);
  acutPrintf(_T("\n
选择实体:"));
 ads_name ss;
 int rc = acedSSGet(_T("X"), NULL, NULL,filter,ss);
 acutRelRb(filter);
 if(rc != RTNORM)
 {
        AfxMessageBox(_T("没有发现满足要求的实体"));
        return;
 }
 long len = 0;
 acedSSLength(ss,&len);
 CString sT;
 sT.Format(_T("发现%d个实体"),len);
 AfxMessageBox(sT);
 
E.        增加图层的操作,关闭打开图层,可以参照samples\Edit.sln例程.
F.         读取实体的扩展记录,和读取ReadNamedObjectsDictionary功能。
 
// 把字典中所有的数据都输出
  AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase();
  AcDbObjectPointer<AcDbDictionary> spDict(pDb->namedObjectsDictionaryId(),AcDb::kForRead);
  if(spDict.openStatus() == Acad::eOk)
  {
   PrintDictionary(spDict.object() );
  }
 
G.        增加控件配制文件,在配制文件中可以指控件的背景色,是否显示工具条,是否显示命令窗口,字体文件搜索路径等。配制文件格式如下:
 
// 控件的背景色 R G B
 ("ViewBlkColor" (0 0 0))
// 是否显示命令行窗口
 ("ShowCommandWindow" "Y")
// 是否显示工具条
("ShowToolBar" "Y")
// 打开dwg文件时,是否读取扩展数据
("ReadDwgExData" "Y")
// 打开dwg文件时,是否读取扩展记录
("ReadDwgExRecord" "Y")
// 是否支持实体名柄操作
("IsSupportEntHandle" "Y")
// shx文件目录
("ShxDir" "Shx")
 
H.        增加对自定义实体的显示AcDbProxyEntity;
I.         增加对属性定义文件的显示AcDbAttributeDefinition
J.         增加W C方式构造选集,
K.        增加实体选择变虚功能
L.         增加acedGetPoint函数,可以从图上取一个点
M.       增加在图上动态标注一个点的显示例程
N.        增加设置光标位置函数
O.       修正了一堆显示细节问题,控件显示更为精确。
P.        比如有:文字间的空隔距离问题,MTEXT字体风格问题,填充对象有时填充不对问题,块中实体颜色显示等问题。下载 文件大小:92.83 KB,下载次数:0
18.     2008.12.01更新
A.        增加对公差显示的
B.        修正了椭圆弧显示问题,等一堆显示问题.
C.        增加带有形的复杂线型的显示.
D.       增加在IE中同时打开两个控件的演示例程.
E.        增加打开对话框中显示dwg预览的功能,并增加
F.          CBitmap* MxDraw::GetPreviewBmp(LPCTSTR pszFileName)函数得到dwg的预览位图
G.        增加MxDraw::DoPreviewFileDialog函数,弹出带预览窗口的文件打开对话框
H.        增加对DXF文件的显示支持.
I.           修正控件尺寸在除VC的其它语言中改不了的问题
 
19.   2009.05.10更新
A.        增加布局功能和相关接口,如:McDbLayout,McDbLayoutManager等类。
B.        增加鼠标移动到实体上的动态提示功能和相关接口。如:
// ARX的动态事件接口,虚函数。
virtual Mcad::ErrorStatus McEdInputPointMonitor::MonitorInputPointToolTip(IN const  McDbObjectIdArray& pickedEntities,
  IN const McGePoint3d& pickedPoint,
  IN CString& sNewToolTipString
  );
 
C.        ActiveX的动态提示事件函数
CMxDrawOcxCtrl::FireMonitorInputPointToolTip(LONG lId, BSTR* pToolTip)
D.       增加图层管理功能和相关接口。如:
ActiveX
的图层导出接口.
E.        SHORT CMxDrawOcxCtrl::GetLayerIdArray(VARIANT* pArrayId);
SHORT CMxDrawOcxCtrl::GetLayerProp(LONG lId, BSTR* pszName, BSTR* pszLineTypeName,        SHORT* pIsOff, SHORT* pIsLock, SHORT* pIsFrozen, BYTE* pR, BYTE* pG, BYTE* pB);
SHORT CMxDrawOcxCtrl::SetLayerOff(LONG lId, SHORT iIsOff);
 
F.         导出dwf功能和相关接口。如:
 BOOL MxDraw::ExprotDwf(MXDRAWOCXHANDLE hOcx,
  LPCTSTR pszDwfFilePath
  );
G.        安装包中增加调试版lib文件和dll文件,方便控件使用者调试程序.
H.        增加放大镜功能
I.          修正一堆细节上的错误
 
20.   2009.06.16更新
A.        增加 dwf的导入.
B.        增加样条线绘制,
C.        增加曲线采样和离散曲线功能,可以对样条线,圆弧,圆,椭圆,椭圆弧进行离散
D.       增加用户坐标系
E.        增加视区旋转显示,和旋转打印。
F.         增加鸟瞰功能
G.        增加对位图,jgp的显示,增加AcDbRasterImage类。
H.        增加绘图属性工具条,可以设置绘图的当前的颜色,当前图层,当前线型.
I.          增加绘图工具条,主要用增加:绘线,矩形框,圆弧,圆,样条线,椭圆,椭圆弧,点,插入块,写文字,和插入图片按钮。
J.         增加打开网上dwg图纸命令
K.        增加关闭选择实体的图层命令
L.         增加打开所有图层命令
 
21.   2009.07.09更新
A.        增加丰富的 COM 接口,这些接口类拟AutoCAD VBA接口,方便其它语言使用.例如,VB中使用控件交互绘制直线的代码:
'
交互绘直线代码
ElseIf iCommandId = 4 Then
    Dim curSpace2 As MxDrawXLib.MxDrawBlockTableRecord
    Set curSpace2 = app.WorkingDatabase.CurrentSpace
    Set mxUtility = New MxDrawXLib.MxDrawUtility
    Dim getPt1 As MxDrawXLib.MxDrawPoint
    Set getPt1 = mxUtility.GetPoint(, Chr(13) + Chr(10) + "
点取第一点:")
    If (getPt1 Is Nothing) Then
        MsgBox "
用户取消.."
        Exit Sub
    End If
    Dim getPt2 As MxDrawXLib.MxDrawPoint
    Set getPt2 = mxUtility.GetPoint(getPt1, Chr(13) + Chr(10) + "
点取第二点:")
    If (getPt2 Is Nothing) Then
        MsgBox "
用户取消.."
        Exit Sub
    End If
    Dim newLine As MxDrawXLib.MxDrawLine
    Set newLine = curSpace2.AddLine(getPt1, getPt2)
    newLine.colorIndex = mcRed

End If
B.        增加更加完善的帮助文档
C.        增加删除实体功能
D.       增加夹点编辑功能
E.        增加编辑文字的演示例程代码
 
22.   2009.08.20更新更新下载地址:
A.        增加高质量绘图功能,该功能可以在控件配制文件中设置
 
ini文件如果设置了如下值,高质量绘图功能就激活了:
//
是否高质量进行绘图.激活该项,绘图质量提高,提显示速度下降。
("HighQualityDraw" "Y")
   
高质量绘图功能激活后,图面的直线绘图光滑,不存在锯齿,文字显示也很圆滑,画面质量非常高,但绘图性能会有所降低,如果图面实体较多,可以把该功能禁用。在配制文件如下修改:
  ("HighQualityDraw" "N")
 
B.        mxdrawx.ocx接口更加完善,增加C#例程。
 
:交互绘直线:
private void DrawLine()
        {
            MxDrawUtility mxUtility  = new MxDrawUtility();
            MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "
点取第一点:") );
            if (point == null)
            {
                MessageBox.Show("
用户取消..");
                return;
            }
            MxDrawPoint point2 = (MxDrawPoint)(mxUtility.GetPoint(point, "
点取第二点:"));
            if (point2 == null)
            {
                MessageBox.Show("
用户取消..");
                return;
            }
            MxDrawApplication mxapp = new MxDrawApplication();
            MxDrawDatabase mxdb = mxapp.WorkingDatabase();
            MxDrawBlockTableRecord curSpace = mxdb.CurrentSpace();
            MxDrawLine line = curSpace.AddLine(point, point2);
            line.colorIndex = MCAD_COLOR.mcRed;
           
            line.Close();
            curSpace.Close();
        }
 
C.       增加把指定的实体,缩放到视区中显示。
D.      增加读取扩展数据
       // 读扩展数据
        private void ReadXData()
        {
            MxDrawUtility mxUtility = new MxDrawUtility();         
            object getPt;
            MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n
选择读取扩展数据的实体:");
            if (ent == null)
            {
                return;
            }
            MxDrawResbuf xData = ent.GetXData("");
            if(xData.Count == 0)
            {
                MessageBox.Show("
没有扩展数据");
            }
            else
            {
                //
向命令行窗口打印扩展数据。
                xData.PrintData();
            }
        }
 
E.       写扩展数据
// 写扩展数据
        private void WriteXData()
        {
            MxDrawUtility mxUtility = new MxDrawUtility();
            object getPt;
            MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n
选择读取扩展数据的实体:");
            if (ent == null)
            {
                return;
            }
            MxDrawResbuf xData = new MxDrawResbuf();
            xData.AddString("TestApp",1001);
            xData.AddLong(77677,1071);
            ent.SetXData(xData);
        }
 
F.        遍历数据库的实体
private void GetAllEntity()
        {
            MxDrawApplication app = new MxDrawApplication();
            MxDrawUtility mxUtility = new MxDrawUtility();
            MxDrawBlockTableRecord blkRec = app.WorkingDatabase().CurrentSpace();
            MxDrawBlockTableRecordIterator iter = blkRec.NewIterator();
            if (iter == null)
                return;
            //
所有实体的id数组。
            List<Int32> aryId = new List<Int32>();
            int iLineNum = 0;
            for(;!iter.Done() ;iter.Step(true,false) )
            {
                MxDrawEntity ent = iter.GetEntity();
                if (ent == null)
                    continue;
                aryId.Add(ent.ObjectID);
                if(ent is MxDrawLine)
                {
                    MxDrawLine line = (MxDrawLine)ent;
                    iLineNum++;
                }  
            }
            String sT;
            sT = "
发现" + aryId.Count + "个实体,其中有"+iLineNum + "个直线";
            MessageBox.Show(sT);
        }
 
G.        插入图块,增加注释。
 
private void InsertNote()
        {
            String sNoteText = "
这是一个注释";
            String sNote = "NoteBlockName";
            //
让用点取一个注释插入点。
            MxDrawUtility mxUtility = new MxDrawUtility();
            MxDrawPoint point = (MxDrawPoint)(mxUtility.GetPoint(null, "
点取插入点 :"));
            if (point == null)
            {
                MessageBox.Show("
用户取消..");
                return;
            }
            //
插入注释。
            MxDrawApplication app = new MxDrawApplication();
            
            MxDrawDatabase curDatabase = app.WorkingDatabase();
            MxDrawBlockTable blkTable = curDatabase.GetBlockTable();
            MxDrawBlockTableRecord curSpace = curDatabase.CurrentSpace();
            MxDrawBlockTableRecord blkRec = blkTable.GetAt(sNote,true);
            if(blkRec == null)
            {
                // blkRec == null
指名的块记录没有找到.
                //
插入一个新的块。
                String sBlkFilePath = axMxDrawX1.GetOcxAppPath() + "\\Blk\\TsgNote.dwg";
                //
dwg文件导入到当前数据库。
                axMxDrawX1.InsertBlock(sBlkFilePath, sNote);
                blkRec = blkTable.GetAt(sNote,true);
            }
            if(blkRec != null)
            {
                //
在当前空间中插入一个块引用。
                curSpace.InsertBlock(point,sNote,4.0,0.0);
            }
            //
插入注释文本。
            point.y = point.y - 20.0;
            curSpace.AddText(point, sNoteText, 16, 0.0, MCAD_McHorizontalAlignment.mcHorizontalAlignmentCenter,
                MCAD_McVerticalAlignment.mcVerticalAlignmentTop);
        }
 
H.        烁闪实体和停止烁闪例程
 
private void TwinkeEnt()
        {
            MxDrawUtility mxUtility = new MxDrawUtility();
            object getPt;
            MxDrawEntity ent = mxUtility.GetEntity(out getPt, "
选择要闪烁的实体");
            if (ent == null)
                return;
            Int32 id = ent.ObjectID;
            ent.Close();
            axMxDrawX1.TwinkeEnt(id);
        }
        //
停止闪实体
        private void StopTwinkeEnt()
        {
            MxDrawUtility mxUtility = new MxDrawUtility();
            object getPt;
            MxDrawEntity ent = mxUtility.GetEntity(out getPt, "
选择要停止闪烁的实体");
            if (ent == null)
                return;
            Int32 id = ent.ObjectID;
            ent.Close();
            axMxDrawX1.StopTwinkeEnt(id);
        }
 
I.         增加控件的JavaScrip例程。
 
23.   控件最新更新,2009.09.02
A.        增加绘图捕捉功能.
B.       ARX接口中的曲线类几何计算函数更为完善
 
24.   2009.09.21更新
A.        增加不需要用控件打开,直接把dwg转成jpg文件的功能。
B.        增加ARX的自定义实体的支持。可以参例程:sample\CustomEntity\CustomEntity.sln例程。并实现了联动编辑的效果。
C.        修改了一些小问题。
 
25.   2009.10.10更新
D.       增加ASP例程。
E.       增加控件在网页中使用时,把文件保存到服务器的功能。
 
javascrit 程序绘直线代码;
var MxDrawXCtrl_Obj; //控件对象
function line()
{
MxDrawXCtrl_Obj = document.all.item("MxDrawXCtrl");
var app ;
app = new ActiveXObject("MxDrawX.MxDrawApplication");

var curSpace = app.WorkingDatabase().CurrentSpace();
var point1;
var point2;
point1 = new ActiveXObject("MxDrawX.MxDrawPoint");
point2 = new ActiveXObject("MxDrawX.MxDrawPoint");
point1.x = 10;
point1.y = 10;
point1.z = 0;
point2.x = 200;
point2.y = 4000;
point2.z = 0;
curSpace.AddLine(point1, point2);

app.ZoomAll();
alert ("绘制直线成功");
}
26.   2009.11.12更新下载地址
 
A.          完善MxDrawX.ocx的接口和属性。控件的背影色,是否显示工具条,命令窗口等都可以直接在控件属性编辑器中修改
B.         增加一组简单的绘图接口,可以非常方便进行参数化绘图,这些接口的详细调用例程可以参考samples\MxDrawXTestVB6.0下的例程。
 
函数定义如下:复制内容到剪贴板 代码:
int DrawLine(double dX1, double dY1, double dX2, double dY2)
    MxDrawXLib._DMxDrawX
的成员
int DrawArc1(double dCenterX, double dCenterY, double dRadius, double dStartAng, double dEndAng)
    MxDrawXLib._DMxDrawX
的成员
int DrawArc2(double dStartPointX, double dStartPointY, double dMidPointX, double dMidPointY, double dEndPointX, double dEndPointY)
    MxDrawXLib._DMxDrawX
的成员
int DrawArc3(double dStartPointX, double dStartPointY, double dEndPointX, double dEndPointY, double dBulge)
    MxDrawXLib._DMxDrawX
的成员
int DrawBlockReference(double dPosX, double dPosY, string pszBlkName, double dScale, double dAng)
    MxDrawXLib._DMxDrawX
的成员
int DrawCircle(double dCenterX, double dCenterY, double dRadius)
    MxDrawXLib._DMxDrawX
的成员
int DrawEllipse(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio)
    MxDrawXLib._DMxDrawX
的成员
int DrawEllipseArc(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio, double dStartAng, double dEndAng)
    MxDrawXLib._DMxDrawX
的成员
int DrawImage(double dPosX, double dPosY, double dScale, double dAng, string pszFilePath)
    MxDrawXLib._DMxDrawX
的成员
int DrawPathToHatch(double dPatternScale)
    MxDrawXLib._DMxDrawX
的成员
int DrawPathToPolyline()
    MxDrawXLib._DMxDrawX
的成员
int DrawPathToSpline()
    MxDrawXLib._DMxDrawX
的成员

int DrawPoint(double dX, double dY)
    MxDrawXLib._DMxDrawX
的成员

int DrawText(double dPosX, double dPosY, string pszText, double dHeight, double dRotation, short horizontalMode, short verticalMode)
    MxDrawXLib._DMxDrawX
的成员

uint DrawColor { set; get; }
    MxDrawXLib._DMxDrawX
的成员

string TextStyle { set; get; }
    MxDrawXLib._DMxDrawX
的成员
double LineWidth { set; get; }
    MxDrawXLib._DMxDrawX
的成员
string LineType { set; get; }
    MxDrawXLib._DMxDrawX
的成员

string LayerName { set; get; }
    MxDrawXLib._DMxDrawX
的成员
string PatternDefinition { set; get; }
    MxDrawXLib._DMxDrawX
的成员复制内容到剪贴板 代码:比如,绘制一个填充:
'
---------------------------------------
'
绘制一个有图案的填充
'angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …
'45 = angle
是图案线角度.
'0 = x-origin
是第一个填充线经过的点位置X坐标
'0 = y-origin
是第一个填充线经过的点位置Y坐标
'0 = delta-x   
是下一个填充线相对前一个线的X方向偏移
'0.125 = delta-y   
是下一个填充线相对前一个线的Y方向偏移
MxDrawX1.AddPatternDefinition "MyHatchPattern1", "((45, 0,0, 0,0.125))"
MxDrawX1.PatternDefinition = "MyHatchPattern1"

'
定义一个路径的开始点
MxDrawX1.PathMoveToEx 600, 3300, 0, 0, 0.3
'
路径的一下个点
MxDrawX1.PathLineTo 700, 3300
'
路径的一下个点
MxDrawX1.PathLineTo 700, 3400
'
路径的一下个点
MxDrawX1.PathLineTo 600, 3300

'
把路径变成一个填充,80,是填充图案的缩放比例.
MxDrawX1.DrawPathToHatch 100

'
把所有的实体都放到当前显示视区
MxDrawX1.ZoomAll
'
更新视区显示
MxDrawX1.UpdateDisplay
 
27.   2009.12.31更新下载地址:
A.         控件升级到VC2008
B.         支持最新的CAD图纸2010
C.         DWG文件模块是否加载可选
D.        完善了DWG文件读写模块,解决了以前难解决的编辑图纸问题,为后续支持更为复杂的编辑功能准备了基础.
E.         增加控件MxDrawX自动安装包(MSI文件),并且控件运行前,不需要安装任何VC环境.
F.         修改了调试版本的一些错误,现在调试和发行版本一样稳定.
G.        增加导出pdf功能
 
 
 
 2010.02.06更新下载地址: <-- 上一篇