mxdwg 发表于 2009-9-2 09:14:00

<p>控件最新更新,2009.09.02,<br/>1. 增加绘图捕捉功能.<br/>2. ARX接口中的曲线类几何计算函数更为完善</p><p>下载地址:<br/><a href="http://www.mxdraw.com/viewthread.php?tid=69&amp;extra=page%3D1">http://www.mxdraw.com/viewthread.php?tid=69&amp;extra=page%3D1</a></p>

sieben 发表于 2009-9-2 18:38:00

<p>1,佩服楼主!</p><p>2,楼主的QQ群满了,还能不能加俺?QQ:812928665</p><p>3,楼主对DWG文件的读入是基于DWGDirectX的吗?</p><p>4,若我想通过DWGDirectX读Dwg文件用C#来写一个象梦想控件一样的东西,楼主认为可行吗?(图形显示用GDI+)</p><p>&nbsp;我对绘图速度和内存处理有点担心.我奇怪楼主是怎样实现填充的?</p><p>5,再次佩服楼主!</p>

mxdwg 发表于 2009-9-2 19:52:00

<p>1. 对Dwg读入使用DwgDirect</p><p>2. 填充图案,有专门算法可以生成。</p><p>3. 用C#也可以写,但没有C++写出的程序速度快。</p>

mxdwg 发表于 2009-9-23 08:30:00

<p>2009.09.21更新<br/>更新下载地址:</p><p><a href="http://www.mxdraw.com/viewthread.php?tid=75&amp;extra=page%3D1">http://www.mxdraw.com/viewthread.php?tid=75&amp;extra=page%3D1</a></p><p>1.增加不需要用控件打开,直接把dwg转成jpg文件的功能。<br/>2.增加ARX的自定义实体的支持。可以参例程:sample\CustomEntity\CustomEntity.sln例程。并实现了联动编辑的效果。<br/>3.修改了一些小问题。</p><p></p>

mxdwg 发表于 2009-10-10 14:41:00

本帖最后由 作者 于 2009-10-13 13:02:34 编辑 <br /><br /> <h2>2009.10.10更新</h2><div class="t_msgfont"><strong>更新下载地址:</strong><br/><strong><a href="http://www.mxdraw.com/viewthread.php?tid=79&amp;extra=page%3D1">http://www.mxdraw.com/viewthread.php?tid=79&amp;extra=page%3D1</a></strong><br/><br/>1.&nbsp;&nbsp;增加ASP例程。<br/>2.&nbsp;&nbsp;增加控件在网页中使用时,把文件保存到服务器的功能。<br/><br/>javascrit 程序绘直线代码;</div><div class="t_msgfont"></div><div class="t_msgfont"><font face="宋体-方正超大字符集">var MxDrawXCtrl_Obj; //控件对象<br/>function line()<br/>{<br/>MxDrawXCtrl_Obj = document.all.item("MxDrawXCtrl");<br/>var app ;<br/>app = new ActiveXObject("MxDrawX.MxDrawApplication");<br/><br/>var curSpace = app.WorkingDatabase().CurrentSpace();<br/>var point1;<br/>var point2;<br/>point1 = new ActiveXObject("MxDrawX.MxDrawPoint");<br/>point2 = new ActiveXObject("MxDrawX.MxDrawPoint");<br/>point1.x = 10;<br/>point1.y = 10;<br/>point1.z = 0;<br/>point2.x = 200;<br/>point2.y = 4000;<br/>point2.z = 0;<br/>curSpace.AddLine(point1, point2);<br/><br/>app.ZoomAll();<br/>alert ("绘制直线成功");<br/>}</font></div><div class="t_msgfont"></div>

mxdwg 发表于 2009-11-12 20:46:00

<p></p><p><strong><font size="3">2009.11.12更新下载地址:</font></strong><br/><strong><font size="4"><font size="5"><font size="3"></font></font></font></strong></p><p><strong><font size="4"><font size="5"><font size="3"><a href="http://www.mxdraw.com/viewthread.php?tid=81&amp;extra=page%3D1" target="_blank">http://www.mxdraw.com/viewthread.php?tid=81&amp;extra=page%3D1</a></font></font></font></strong><br/>1.&nbsp;&nbsp;完善MxDrawX.ocx的接口和属性。控件的背影色,是否显示工具条,命令窗口等都可以直接在控件属性编辑器中修改<br/><br/>2.&nbsp;&nbsp;增加一组简单的绘图接口,可以非常方便进行参数化绘图,这些接口的详细调用例程可以参考samples\MxDrawXTestVB6.0下的例程。<br/><br/>函数定义如下: 复制内容到剪贴板 <br/>代码:<br/>int DrawLine(double dX1, double dY1, double dX2, double dY2)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawArc1(double dCenterX, double dCenterY, double dRadius, double dStartAng, double dEndAng)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawArc2(double dStartPointX, double dStartPointY, double dMidPointX, double dMidPointY, double dEndPointX, double dEndPointY)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawArc3(double dStartPointX, double dStartPointY, double dEndPointX, double dEndPointY, double dBulge)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawBlockReference(double dPosX, double dPosY, string pszBlkName, double dScale, double dAng)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawCircle(double dCenterX, double dCenterY, double dRadius)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawEllipse(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawEllipseArc(double dCenterX, double dCenterY, double dMajorAxisX, double dMajorAxisY, double dRadiusRatio, double dStartAng, double dEndAng)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawImage(double dPosX, double dPosY, double dScale, double dAng, string pszFilePath)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawPathToHatch(double dPatternScale)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawPathToPolyline()<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>int DrawPathToSpline()<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/><br/>int DrawPoint(double dX, double dY)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/><br/>int DrawText(double dPosX, double dPosY, string pszText, double dHeight, double dRotation, short horizontalMode, short verticalMode)<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/><br/>uint DrawColor { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/><br/>string TextStyle { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>double LineWidth { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>string LineType { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/><br/>string LayerName { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员<br/>string PatternDefinition { set; get; }<br/>&nbsp; &nbsp; MxDrawXLib._DMxDrawX 的成员复制内容到剪贴板 <br/>代码:<br/>比如,绘制一个填充:<br/>'《---------------------------------------》<br/>'绘制一个有图案的填充<br/>'angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …<br/>'45 = angle 是图案线角度.<br/>'0 = x-origin 是第一个填充线经过的点位置X坐标<br/>'0 = y-origin 是第一个填充线经过的点位置Y坐标<br/>'0 = delta-x&nbsp; &nbsp;是下一个填充线相对前一个线的X方向偏移<br/>'0.125 = delta-y&nbsp; &nbsp;是下一个填充线相对前一个线的Y方向偏移<br/>MxDrawX1.AddPatternDefinition "MyHatchPattern1", "((45, 0,0, 0,0.125))"<br/>MxDrawX1.PatternDefinition = "MyHatchPattern1"<br/><br/>'定义一个路径的开始点<br/>MxDrawX1.PathMoveToEx 600, 3300, 0, 0, 0.3<br/>'路径的一下个点<br/>MxDrawX1.PathLineTo 700, 3300<br/>'路径的一下个点<br/>MxDrawX1.PathLineTo 700, 3400<br/>'路径的一下个点<br/>MxDrawX1.PathLineTo 600, 3300<br/><br/>'把路径变成一个填充,80,是填充图案的缩放比例.<br/>MxDrawX1.DrawPathToHatch 100<br/><br/>'把所有的实体都放到当前显示视区<br/>MxDrawX1.ZoomAll<br/>'更新视区显示<br/>MxDrawX1.UpdateDisplay</p><p></p><p></p>

mxdwg 发表于 2010-1-5 10:43:00

<p>2009.12.31更新下载地址:</p><p><a href="http://www.mxdraw.com/?p=10&amp;a=view&amp;r=14">http://www.mxdraw.com/?p=10&amp;a=view&amp;r=14</a></p><p><br/>1.&nbsp; 控件升级到VC2008</p><p>2.&nbsp; 支持最新的CAD图纸2010</p><p>3.&nbsp; DWG文件模块是否加载可选</p><p>4.&nbsp; 完善了DWG文件读写模块,解决了以前难解决的编辑图纸问题,为后续支持更为复杂的编辑功能准备了基础.</p><p>5.增加控件MxDrawX自动安装包(MSI文件),并且控件运行前,不需要安装任何VC环境.</p><p>6.修改了调试版本的一些错误,现在调试和发行版本一样稳定.</p><p>7.增加导出pdf功能.<br/></p>

mxdwg 发表于 2010-2-6 12:56:00

<p><font size="4"><strong>MxDraw5.0(20100206) 下载地址:</strong></font></p><p><font color="#445cbb" size="4"><a href="http://www.mxdraw.com/?p=10&amp;a=view&amp;r=17"><strong>http://www.mxdraw.com/?p=10&amp;a=view&amp;r=17</strong></a></font></p><p>1.增加批量打印接口<br/>函数定义如下:<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static BOOL BatchPrintDialog(MXDRAWOCXHANDLE hOcx,<br/>&nbsp;&nbsp;const MxDraw::BATCH_PRINT_DATA&amp; printData);</p><p>&nbsp;// 直接打印,不出来现打印对话框.<br/>&nbsp;static BOOL Print(MXDRAWOCXHANDLE hOcx,&nbsp;&nbsp;<br/>&nbsp;&nbsp;McGePoint3d ptLB,&nbsp;// 打印的范围左下角。<br/>&nbsp;&nbsp;McGePoint3d ptRT,&nbsp;// 打印的范围右上角。<br/>&nbsp;&nbsp;LPCTSTR pszPrintName,&nbsp;&nbsp;// 打印机名。<br/>&nbsp;&nbsp;LPCTSTR pszPaperName,&nbsp;&nbsp;// 打印的图纸名。<br/>&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp; iPrintDirection,&nbsp;// 打印的方向,&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; CRect* pRectPageMargin = NULL,&nbsp;&nbsp; // 打印的页边距离,如果转NULL就取打印机默认的页边距。<br/>&nbsp;&nbsp;LPCTSTR pszLayoutName = NULL,&nbsp;// 打印的布局,为NULL就是模型Model中的内容。<br/>&nbsp;&nbsp;LPCTSTR pszPrintConfiy = NULL&nbsp;// 打印配制,暂没有使用。<br/>&nbsp;&nbsp;);</p><p>2.增加正交绘图模式</p><p>3.增加分屏显示功能</p><p>4.增加asp.net的把文件保存到服务器的例程。</p><p>5.修正了一些细节问题。</p><p></p>

mxdwg 发表于 2010-6-18 14:16:00

2010.06.18更新下载地址:

<p><font size="2"><strong><font size="3"><font size="4"><strong>MxDraw5.0(20100618) 下载地址:</strong></font></font></strong></font></p>
<p><strong><font size="3"><font color="#800080" face="Verdana"><a href="http://www.mxdraw.com/?p=10&amp;a=view&amp;r=21">http://www.mxdraw.com/?p=10&amp;a=view&amp;r=21</a></font></font></strong></p>
<p><strong><font size="3"></font></strong>&nbsp;</p>
<p><strong><font size="3"></font></strong>&nbsp;</p>
<p><font size="2"><strong><font size="3">1.增加搜索图上表格文字功能.类名为:MxTableSearch</font></strong></font>调用例程:<br/>&nbsp;MxTableSearch search;<br/>&nbsp;search.AddTableHeadUnit(_T("序号"));<br/>&nbsp;search.AddTableHeadUnit(_T("名称"));<br/>&nbsp;search.AddTableHeadUnit(_T("材料"));<br/>&nbsp;search.AddTableHeadUnit(_T("长度"));</p>
<p>&nbsp;std::vector&lt;std::vector&lt;CString&gt; &gt; vecTableContents;<br/>&nbsp;if(search.Do(vecTableContents) )<br/>&nbsp;{<br/>&nbsp;&nbsp;for(UINT i = 0; i &lt; vecTableContents.size();i++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;std::vector&lt;CString&gt;&amp; vecStr = vecTableContents;<br/>&nbsp;&nbsp;&nbsp;CString sOut = _T("\n");<br/>&nbsp;&nbsp;&nbsp;for(UINT j = 0; j &lt; vecStr.size();j++)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;sOut = sOut + _T(" ") + vecStr;<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;acutPrintf(sOut);<br/>&nbsp;&nbsp;}<br/>&nbsp;}</p>
<p><font size="3"><strong>2.增加把某个dwg图做为背景图打开。函数名为: MxDraw::OpenBackgroundFile</strong></font></p>
<p><font size="3"><strong>3.增加自绘背景接口,可以方便定制控件的显示背景:</strong></font>&nbsp;virtual void McDbDatabaseReactor::WordDrawBackGround(const McDbDatabase* pDatabase,McGiWorldDraw* wd,McDbObjectId layoutId);</p>
<p><font size="3"><strong>4.增加文字转曲线功能</strong></font><br/>&nbsp;static BOOL TextToCurves(<br/>&nbsp;&nbsp;IN&nbsp; McDbText* pText,<br/>&nbsp;&nbsp;OUT AcDbVoidPtrArray&amp; aryCurve<br/>&nbsp;&nbsp;);</p>
<p><font size="3"><strong>5.增加VC6下,调用控件例程,使用COM 接口调用,很有参考价值:</strong></font>比如:与用户交互构造选择集:<br/>// 与用户交到选择实体.<br/>&nbsp;&nbsp;MxDrawXLib::IMxDrawSelectionSetPtr ssGet;<br/>&nbsp;&nbsp;ssGet.CreateInstance(__uuidof( MxDrawXLib::MxDrawSelectionSet ));<br/>&nbsp;&nbsp;if(ssGet == NULL)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;return;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;ssGet-&gt;Select (MxDrawXLib::mcSelectionSetUserSelect);</p>
<p>&nbsp;&nbsp;if(ssGet-&gt;GetCount() == 0)<br/>&nbsp;&nbsp;&nbsp;return;</p>
<p>&nbsp;&nbsp;for(long i = 0; i &lt; ssGet-&gt;GetCount();i++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;MxDrawXLib::IMxDrawEntityPtr spEnt =&nbsp; ssGet-&gt;Item(i);<br/>&nbsp;&nbsp;&nbsp;if(spEnt == NULL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;continue;</p>
<p>&nbsp;&nbsp;&nbsp;CComPtr&lt;IMxDrawLine&gt; spLine;<br/>&nbsp;&nbsp;&nbsp;spEnt-&gt;QueryInterface(&amp;spLine);<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;if(spLine != NULL)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;//直线对象。<br/>&nbsp;&nbsp;&nbsp;&nbsp;stuPt sPt;&nbsp;// 开始点<br/>&nbsp;&nbsp;&nbsp;&nbsp;stuPt ePt;&nbsp;// 结束点<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dPoint(spLine-&gt;GetStartPoint(),sPt);<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dPoint(spLine-&gt;GetEndPoint(),ePt);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;CComPtr&lt;IMxDrawArc&gt; spArc;<br/>&nbsp;&nbsp;&nbsp;spEnt-&gt;QueryInterface(&amp;spArc);</p>
<p>&nbsp;&nbsp;&nbsp;if(spArc != NULL)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;stuPt cenPt;&nbsp;// 圆弧的中点<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dR = 1;&nbsp;// 半径<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dSAng = 0;&nbsp;// 开始角<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dEAng = 0;&nbsp;// 结束角<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dPoint(spArc-&gt;GetCenter(),cenPt);<br/>&nbsp;&nbsp;&nbsp;&nbsp;dR = spArc-&gt;GetRadius();<br/>&nbsp;&nbsp;&nbsp;&nbsp;dSAng = spArc-&gt;GetStartAngle();<br/>&nbsp;&nbsp;&nbsp;&nbsp;dEAng = spArc-&gt;GetEndAngle();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;CComPtr&lt;IMxDrawCircle&gt; spCircle;<br/>&nbsp;&nbsp;&nbsp;spEnt-&gt;QueryInterface(&amp;spCircle);<br/>&nbsp;&nbsp;&nbsp;if(spCircle != NULL)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;stuPt cenPt;&nbsp;// 圆的中点<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dR = 1;&nbsp;// 半径<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dPoint(spArc-&gt;GetCenter(),cenPt);<br/>&nbsp;&nbsp;&nbsp;&nbsp;dR = spArc-&gt;GetRadius();<br/>&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;CComPtr&lt;IMxDrawEllipse&gt; spEllipse;<br/>&nbsp;&nbsp;&nbsp;spEnt-&gt;QueryInterface(&amp;spEllipse);<br/>&nbsp;&nbsp;&nbsp;if(spEllipse != NULL)<br/>&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;stuPt cenPt;&nbsp;// 圆的中点<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dPoint(spEllipse-&gt;GetCenter(),cenPt);</p>
<p><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double dRadiusRation = 1.0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;dRadiusRation&nbsp;&nbsp;= spEllipse-&gt;GetRadiusRatio();<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dStartAng&nbsp;= spEllipse-&gt;GetStartAngle();<br/>&nbsp;&nbsp;&nbsp;&nbsp;double dEndAng&nbsp;&nbsp;= spEllipse-&gt;GetEndAngle();<br/>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;stuPt majorAxis;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Convert3dVector(spEllipse-&gt;GetMajorAxis(),majorAxis);<br/>&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;}</p>
<p>&nbsp;</p>
<p><font size="3"><strong>6. 增加自主的dxf文件读写库,并且开源,使用者可以非常方便修改错误,源代码在samples\MxDxf50目录下,很有参考价值。</strong></font></p>
<p><font size="3"><strong>7. 修改一堆错误,和改了很多细节等。</strong></font></p>
<p><font size="3"><strong>&nbsp;8.增加C#的多文档使用例程</strong></font></p>
<p><strong><font size="3"></font></strong>&nbsp;</p>
<p>&nbsp;</p>

mxdwg 发表于 2010-10-13 14:10:00

2010.10.12更新下载

<font size="5">&nbsp;2010.10.12 更新地址:</font><br/><a href="http://www.mxdraw.com/?p=10&amp;a=view&amp;r=31">http://www.mxdraw.com/?p=10&amp;a=view&amp;r=31</a><br/><br/>更新内容:<br/>1.增加扩展模块的支持,扩展模块名为mrx,与AutoCAD的arx文件是同一类。<br/><br/><br/>2.增加扩展模块中可以增加用户自定义函数和命令,自定义函数可以在ActiveX被其它用语言调用。<br/><br/><br/>3.修改布局中的一些显示错误<br/><br/><br/>4.修改自定义实体的显示错误,自定义实体显示更为准确<br/><br/><br/>5.增加region对象的显示<br/><br/><br/>6.增加MxExpressTools,ExApp例程,在ExApp例程中有一个非常好的表格文字搜索程序代码 SearchTable.cpp,SearchTable.h,演示控件的图面搜索接口的调用。 MxExpressTools中增加了绘制云线,和测量距离功能,并有源代码可参考。<br/><br/><br/>7.修改很多细节错误。<br/><br/>8.控件在网页使用是时,如果客户电脑没有安装控件,增加自动提示安装下载例程代码,在sample\AspNet中<br/><br/><br/>9.提高pdf文件的输出分辨率
页: 1 2 3 4 5 [6] 7 8 9 10 11
查看完整版本: 梦想mxdraw浏览,编辑控件