明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: mxdwg

梦想CAD二维控件

  [复制链接]
 楼主| 发表于 2008-12-4 18:38:00 | 显示全部楼层

梦想绘图控件交流群:73281982

群说明: CAD 控件,DWG图纸的浏览与编辑,CAD工具制作,专业软件制作,ARX开发,合作开发软件项目等交流

 楼主| 发表于 2009-5-11 09:20:00 | 显示全部楼层

2009.05.10更新

更新下载地址:
http://www.mxdraw.com/downland/MxDraw3.0(20090510)BetaTryVersion.exe

1. 增加布局功能和相关接口,如:McDbLayout,McDbLayoutManager等类。

2. 增加鼠标移动到实体上的动态提示功能和相关接口。如:

// ARX的动态事件接口,虚函数。
virtual Mcad::ErrorStatus McEdInputPointMonitor::MonitorInputPointToolTip(IN const  McDbObjectIdArray& pickedEntities,
  IN const McGePoint3d& pickedPoint,
  IN CString& sNewToolTipString
  );

ActiveX的动态提示事件函数
CMxDrawOcxCtrl::FireMonitorInputPointToolTip(LONG lId, BSTR* pToolTip)

3. 增加图层管理功能和相关接口。如:
ActiveX的图层导出接口.

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);

4. 导出dwf功能和相关接口。如:
 BOOL MxDraw::ExprotDwf(MXDRAWOCXHANDLE hOcx,
  LPCTSTR pszDwfFilePath
  );
5.  安装包中增加调试版lib文件和dll文件,方便控件使用者调试程序.

6.  增加放大镜功能

7.  修正一堆细节上的错误

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2009-6-17 15:08:00 | 显示全部楼层
2009.06.16更新

2009.06.16更新下载地址:

http://www.mxdraw.com/viewthread.php?tid=56&extra=page%3D1

1.增加 dwf的导入.

2.增加样条线绘制,

3.增加曲线采样和离散曲线功能,可以对样条线,圆弧,圆,椭圆,椭圆弧进行离散

4.增加用户坐标系

5.增加视区旋转显示,和旋转打印。

6.增加鸟瞰功能

7.增加对位图,jgp的显示,增加AcDbRasterImage类。

8.增加绘图属性工具条,可以设置绘图的当前的颜色,当前图层,当前线型.

9增加绘图工具条,主要用增加:绘线,矩形框,圆弧,圆,样条线,椭圆,椭圆弧,点,插入块,写文字,和插入图片按钮。

10.增加打开网上dwg图纸命令

11.增加关闭选择实体的图层命令

12.增加打开所有图层命令


图片点击可在新窗口打开查看此主题相关图片如下:
图片点击可在新窗口打开查看
发表于 2009-6-17 22:23:00 | 显示全部楼层

搞不清楚您是用什么东东搞的? 好象与AutoCAD 或Autodesk有关联?用ObjectDBX搞的?

我有点搞不懂, 您还没有把CAD操作界面搞完整,就去搞一些花悄的东西?

2维 CAD的核心东东应该不会大,想当年AutoCAD R10仅仅几个M,加上AutoLISP语言,就已经很不错。

如果您能设计出一个稳健的迷你型 AutoCAD,我可以为您提供一个功能强大的、脚本型的二次开发语言,其书写格式类似C/C++,能力接近C/C++,支持MFC 和线程(thread), 而使用的简洁程度与脚本语言一样,运行速度比AutoLISP快一半到数倍,可以取代AutoLISPVBA.比如,把选择的所有圆的半径乘以2

Def  DoubleRad() {

    ss = ssget( buildlist( 0, "CIRCLE"));

    if (!ss) return;

    for (en in ss) {

         eg = entget(en);

         eg.SeekType(40)->Value *= 2.0;

         entmod(eg);

    }

}

:

Def   DoubleRad() {

    ss = ssget( buildlist( 0, "CIRCLE"));

    if (!ss) return;

    for (en in ss) {

         Dx = en.Dispatch;

         R = Dx.Radius;

         Dx.Radius = R*2;

    }

}

 楼主| 发表于 2009-6-18 15:54:00 | 显示全部楼层

是用VC2005写的,与AutoCAD没有关系.

是个一个控件,可以应用到所以需要CAD绘图的专业软件开发中.

 楼主| 发表于 2009-9-2 09:15:00 | 显示全部楼层

控件最新更新,2009.09.02,
1. 增加绘图捕捉功能.
2. ARX接口中的曲线类几何计算函数更为完善

下载地址:
http://www.mxdraw.com/viewthread.php?tid=69&extra=page%3D1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2010-2-10 10:39:00 | 显示全部楼层

梦想绘图控件: MxDraw5.0(20100206) 下载地址:

http://www.mxdraw.com/?p=10&a=view&r=17

1.增加批量打印接口
函数定义如下:
 
        static BOOL BatchPrintDialog(MXDRAWOCXHANDLE hOcx,
  const MxDraw::BATCH_PRINT_DATA& printData);

 // 直接打印,不出来现打印对话框.
 static BOOL Print(MXDRAWOCXHANDLE hOcx,  
  McGePoint3d ptLB, // 打印的范围左下角。
  McGePoint3d ptRT, // 打印的范围右上角。
  LPCTSTR pszPrintName,  // 打印机名。
  LPCTSTR pszPaperName,  // 打印的图纸名。
  int     iPrintDirection, // 打印的方向, 
     CRect* pRectPageMargin = NULL,   // 打印的页边距离,如果转NULL就取打印机默认的页边距。
  LPCTSTR pszLayoutName = NULL, // 打印的布局,为NULL就是模型Model中的内容。
  LPCTSTR pszPrintConfiy = NULL // 打印配制,暂没有使用。
  );

2.增加正交绘图模式

3.增加分屏显示功能

4.增加asp.net的把文件保存到服务器的例程。

5.修正了一些细节问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2015-5-13 09:56:53 | 显示全部楼层
在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();
       
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:41 , Processed in 0.166409 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表