2009.05.10更新
<p><strong>更新下载地址:<br/></strong><a href="http://www.mxdraw.com/downland/MxDraw3.0(20090510)BetaTryVersion.exe" target="_blank"><font color="#a0522d"><strong>http://www.mxdraw.com/downland/MxDraw3.0(20090510)BetaTryVersion.exe</strong></font></a><br/><br/>1. 增加布局功能和相关接口,如:McDbLayout,McDbLayoutManager等类。</p><p>2. 增加鼠标移动到实体上的动态提示功能和相关接口。如:</p><p>// ARX的动态事件接口,虚函数。<br/>virtual Mcad::ErrorStatus McEdInputPointMonitor::MonitorInputPointToolTip(IN const McDbObjectIdArray& pickedEntities,<br/> IN const McGePoint3d& pickedPoint,<br/> IN CString& sNewToolTipString<br/> );</p><p>ActiveX的动态提示事件函数<br/>CMxDrawOcxCtrl::FireMonitorInputPointToolTip(LONG lId, BSTR* pToolTip)</p><p>3. 增加图层管理功能和相关接口。如:<br/>ActiveX的图层导出接口.</p><p>SHORT CMxDrawOcxCtrl::GetLayerIdArray(VARIANT* pArrayId);<br/>SHORT CMxDrawOcxCtrl::GetLayerProp(LONG lId, BSTR* pszName, BSTR* pszLineTypeName, SHORT* pIsOff, SHORT* pIsLock, SHORT* pIsFrozen, BYTE* pR, BYTE* pG, BYTE* pB);<br/>SHORT CMxDrawOcxCtrl::SetLayerOff(LONG lId, SHORT iIsOff);</p><p>4. 导出dwf功能和相关接口。如:<br/> BOOL MxDraw::ExprotDwf(MXDRAWOCXHANDLE hOcx,<br/> LPCTSTR pszDwfFilePath<br/> );<br/>5. 安装包中增加调试版lib文件和dll文件,方便控件使用者调试程序.</p><p>6. 增加放大镜功能</p><p>7. 修正一堆细节上的错误</p><p></p> <strong>2009.06.16更新</strong><div style="MARGIN-TOP: 10px; FONT-SIZE: 12pt; MIN-HEIGHT: 200px; WORD-BREAK: break-all; TEXT-INDENT: 0px; LINE-HEIGHT: normal; WORD-WRAP: break-word;"><p>2009.06.16<strong>更新下载地址:</strong></p><p><a href="http://www.mxdraw.com/viewthread.php?tid=56&extra=page%3D1"><font color="#000000">http://www.mxdraw.com/viewthread.php?tid=56&extra=page%3D1</font></a></p><p>1.增加 dwf的导入.</p><p>2.增加样条线绘制,</p><p>3.增加曲线采样和离散曲线功能,可以对样条线,圆弧,圆,椭圆,椭圆弧进行离散</p><p>4.增加用户坐标系</p><p>5.增加视区旋转显示,和旋转打印。</p><p>6.增加鸟瞰功能</p><p>7.增加对位图,jgp的显示,增加AcDbRasterImage类。</p><p>8.增加绘图属性工具条,可以设置绘图的当前的颜色,当前图层,当前线型.<br/></p><p>9增加绘图工具条,主要用增加:绘线,矩形框,圆弧,圆,样条线,椭圆,椭圆弧,点,插入块,写文字,和插入图片按钮。<br/></p><p>10.增加打开网上dwg图纸命令<br/></p><p>11.增加关闭选择实体的图层命令<br/></p><p>12.增加打开所有图层命令</p><br/><img title="dvubb" alt="图片点击可在新窗口打开查看" src="http://www.mjtd.com/BBS/skins/default/filetype/jpg.gif" border="0"/>此主题相关图片如下:<br/><a href="http://www.mjtd.com/BBS/showimg.asp?BoardID=14&fileid=48111" target="_blank"><img title="dvubb" alt="图片点击可在新窗口打开查看" src="http://www.mjtd.com/BBS/showimg.asp?BoardID=14&fileid=48111" border="0" style="ZOOM: 70%;"/></a><br/></div> <p>搞不清楚您是用什么东东搞的? 好象与AutoCAD 或Autodesk有关联?用ObjectDBX搞的?<p></p></p><p>我有点搞不懂,您还没有把CAD操作界面搞完整,就去搞一些花悄的东西?<p></p></p><p>2维 CAD的核心东东应该不会大,想当年AutoCAD R10仅仅几个M,加上AutoLISP语言,就已经很不错。<p></p></p><p>如果您能设计出一个稳健的迷你型<font face="Times New Roman">
AutoCAD</font>,我可以为您提供一个功能强大的、脚本型的二次开发语言,其书写格式类似<font face="Times New Roman">C/C++,</font>能力接近<font face="Times New Roman">C/C++,支持MFC 和线程(thread), </font>而使用的简洁程度与脚本语言一样,运行速度比<font face="Times New Roman">AutoLISP</font>快一半到数倍,可以取代<font face="Times New Roman">AutoLISP</font>和<font face="Times New Roman">VBA.</font>比如,把选择的所有圆的半径乘以<font face="Times New Roman">2</font>:<p></p></p><p><font face="Times New Roman">Def <span style="mso-spacerun: yes;"> DoubleRad() {</span><p></p></font></p><p><font face="Times New Roman"> ss = ssget( buildlist( 0, "CIRCLE"));<p></p></font></p><p><font face="Times New Roman"> if (!ss) return;<p></p></font></p><p><font face="Times New Roman"> for (en in ss) {<p></p></font></p><p><font face="Times New Roman"> eg = entget(en);<p></p></font></p><p><font face="Times New Roman"> eg.SeekType(40)->Value *= 2.0;<p></p></font></p><p><font face="Times New Roman"> entmod(eg);<p></p></font></p><p><font face="Times New Roman"> }<p></p></font></p><p><font face="Times New Roman">}<p></p></font></p><p>或<font face="Times New Roman">:<p></p></font></p><p><font face="Times New Roman">Def <span style="mso-spacerun: yes;"> DoubleRad() {</span><p></p></font></p><p><font face="Times New Roman"> ss = ssget( buildlist( 0, "CIRCLE"));<p></p></font></p><p><font face="Times New Roman"> if (!ss) return;<p></p></font></p><p><font face="Times New Roman"> for (en in ss) {<p></p></font></p><p><font face="Times New Roman"> Dx = en.Dispatch;<p></p></font></p><p><font face="Times New Roman"> R = Dx.Radius;<p></p></font></p><p><font face="Times New Roman"> Dx.Radius = R*2;<p></p></font></p><p><font face="Times New Roman"> }<p></p></font></p><p><font face="Times New Roman">}</font><p></p></p> <p>是用VC2005写的,与AutoCAD没有关系.</p><p>是个一个控件,可以应用到所以需要CAD绘图的专业软件开发中.</p> <p>控件最新更新,2009.09.02,<br/>1. 增加绘图捕捉功能.<br/>2. ARX接口中的曲线类几何计算函数更为完善</p><p>下载地址:<br/><a href="http://www.mxdraw.com/viewthread.php?tid=69&extra=page%3D1">http://www.mxdraw.com/viewthread.php?tid=69&extra=page%3D1</a><br/></p><p></p> <p><font size="4"><strong>梦想绘图控件: MxDraw5.0(20100206) 下载地址:</strong></font></p><p><a href="http://www.mxdraw.com/?p=10&a=view&r=17">http://www.mxdraw.com/?p=10&a=view&r=17</a></p><p>1.增加批量打印接口<br/>函数定义如下:<br/> <br/> static BOOL BatchPrintDialog(MXDRAWOCXHANDLE hOcx,<br/> const MxDraw::BATCH_PRINT_DATA& printData);</p><p> // 直接打印,不出来现打印对话框.<br/> static BOOL Print(MXDRAWOCXHANDLE hOcx, <br/> McGePoint3d ptLB, // 打印的范围左下角。<br/> McGePoint3d ptRT, // 打印的范围右上角。<br/> LPCTSTR pszPrintName, // 打印机名。<br/> LPCTSTR pszPaperName, // 打印的图纸名。<br/> int iPrintDirection, // 打印的方向, <br/> CRect* pRectPageMargin = NULL, // 打印的页边距离,如果转NULL就取打印机默认的页边距。<br/> LPCTSTR pszLayoutName = NULL, // 打印的布局,为NULL就是模型Model中的内容。<br/> LPCTSTR pszPrintConfiy = NULL // 打印配制,暂没有使用。<br/> );</p><p>2.增加正交绘图模式</p><p>3.增加分屏显示功能</p><p>4.增加asp.net的把文件保存到服务器的例程。</p><p>5.修正了一些细节问题。</p><p></p><p></p> 在VC6中MxDraw使用控件,并响应视区变化事件
1.先在系统中注册MxDrawX.ocx,在VC中引用MxDrawX.ocx,如下图,执行导入组件命令
在Components and controls gallery对话框,选择MxDrawX.ocx,点击插入按钮。
2.在Stdafx.h文件中引入控件的类型库,如下代码
// 导入MxDrawX.ocx类型库,事先需要设置VC包含路径,指名MxDrawX.ocx所在位置
#import "MxDrawX.ocx"
// 包括ATL库,可以它的COM智能指针
#include "ATLBASE.H"
// 使用MxDrawXLib名字空间.
using namespace MxDrawXLib;
3.在对话框资源编辑器里,引用控件,并设置控件的IniFilePath属性值为, EnableViewModifyNotify=Y如下:
4.响应控件的,自定义事件,用VC向导自动加入
5.增加控件变量,用向导自动加入
6.在控件事件处理函数里,加入如下代码,得到视区变化的通知
void CTestMxDrawXDlg::OnCustomEventMxdrawxctrl1(LPCTSTR sEventName)
{
// TODO: Add your control notification handler code here
CString sEventNameTmp(sEventName);
// 得到事件参数
IDispatch* pDispatch = m_ocx.CustomEventParam();
CComPtr<IMxDrawResbuf> spParam;
pDispatch->QueryInterface(&spParam);
// Mx_ViewModify 是事件名称.
if(sEventNameTmp == _T("Mx_ViewModify"))
{
// 视区的中心点X坐标。文档坐标
DOUBLE dCenX = spParam->AtDouble(0);
// 修改后的视区的中心点Y坐标。文档坐标
DOUBLE dCenY = spParam->AtDouble(1);
// 视区宽度,文档坐标
DOUBLE dW = spParam->AtDouble(2);
// 视区高度,文档坐标
DOUBLE dH = spParam->AtDouble(3);
CString sT;
sT.Format(_T("中心点X: %lf,中心点Y:%lf,视区宽度:%lf,视区高度:%lf"),
dCenX,dCenY,dW,dH);
AfxMessageBox(sT);
}
// 释放COM接口
pDispatch->Release();
}
页:
1
[2]