mxdwg 发表于 2010-11-2 19:42:00

本帖最后由 作者 于 2010-11-4 17:03:13 编辑 <br /><br /> <p>2010.11.01更新地址</p>
<p>&nbsp;</p>
<p><font face="Verdana"><a href="http://www.mxdraw.com/?p=10&amp;a=view&amp;r=28"><font face="Verdana">http://www.mxdraw.com/?p=10&amp;a=view&amp;r=28</font></a></font></p>
<p>&nbsp;</p>
<p>1. 增加线重显示</p>
<p>&nbsp;</p>
<p>2. 增加射线显示</p>
<p>&nbsp;</p>
<p>3. 增加块参照显示</p>
<p>&nbsp;</p>
<p>4. 增加dwg批量转pdf功能,函数名为:static BOOL MxDraw::MultiDwgConvertPdf(IN const CString&amp; sDwgFileDir,<br/>&nbsp;&nbsp;IN const CString&amp; sPdfFileDir,IN CMxConvertPdfParam* pExParam = NULL);</p>
<p>&nbsp;</p>
<p>5. 增加控件换肤功能,函数名为:static void MxDraw::SetTheme(PaintTheme theme);</p>
<p>&nbsp;</p>
<p>6. 完善曲线打断函数,getSplitCurves,现在可以对Polyline,Line,Arc,做打断.</p>
<p>&nbsp;</p>
<p>7. 完善多行文字的绘制处理功能。</p>

mxdwg 发表于 2010-12-27 09:17:53

2010.12.24更新地址
http://www.mxdraw.com/?p=10&a=view&r=30
1. 增加Chm帮助文档

2. 增加固定夹点显示

3. 增加对多线显示支持

4. 增加PL 线自交功能

5.增加 实体删除,并把内存释放功能

6.增加实体被选择后的通知事件

7.修改一些细节错误

mxdwg 发表于 2011-4-15 12:16:57

本帖最后由 mxdwg 于 2011-4-15 12:21 编辑

2011.04.14更新下载地址:
http://www.mxdraw.com/?p=10&a=view&r=38

1. 更加完善的标注接口,MxDrawX.ocx里,可以非常方便绘制标注实体,和访问和修改标注实体信息

2.增加标注接口的VB调用例程,详细可以参考sample\MxDrawXTestVB6.0
如绘制对齐标注的代码:
      
Private Sub DrawDimAligned_Click()
            MxDrawX1,AddDimStyle "MyDimStyle", "41,0.18,141,0.09,40,200", "77,1,271,3", "3,""+HZ""", "342,0"
            MxDrawX1.DimStyle = "MyDimStyle"

            '把颜色改回黑白色
            MxDrawX1.DrawColor = 0

            '把线型改成实线
            MxDrawX1.LineType = ""

            '设置线宽 4
            MxDrawX1.LineWidth = 0


            MxDrawX1.DrawDimAligned 0, 4000, 300, 4500, 150, 4600

            '把所有的实体都放到当前显示视区
            MxDrawX1.ZoomAll

            '更新视区显示
            MxDrawX1.UpdateDisplay
            End Sub

3. 完善标注接口文档,和帮助文档

4. 增加线型标注

5. 增加对齐标注

6. 增加半径标注

7. 增加直径标注




mxdwg 发表于 2011-5-30 10:34:54

本帖最后由 mxdwg 于 2011-5-30 10:52 编辑

2011.05.24更新下载地址

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

1. 图层亮度显示控制,可以把一些不重要的图层变成灰色显示,函数如下

// -------------------------------------------------------------------------
// Summary:
//   设置显示亮度,默认值为100%
// Parameters:
//   bright   - 亮度百分数,取值为0 ~100
//pszLayerName - 图层名,为空,就设置所有图层
//hOcx            -   控件句柄,为空取当前句柄
//isAutoUpDisplay -   是否自动更新显示
// -------------------------------------------------------------------------
static bool MxDraw::SetDisplayBright(BYTE bright,LPCTSTR pszLayerName = NULL,
MXDRAWOCXHANDLE hOcx = NULL,bool isAutoUpDisplay = true);
2. 增加Undo功能,可以无限制的回退到以前任何操作状态.
   调用static bool      MxDraw::EnableUndo(bool isEnable);启用控件的undo功能
// -------------------------------------------------------------------------
// Summary:
//   是否启用undo功能,控件为了节约内存和效率,默认控件是不启用的
//该函数只会影响将要创建的控件的undo功能,如果已经创建的控件不受影响.
//所以建议最好在InitMxDraw函数后调用.
// Parameters:
//   isEnable - 是否启用Undo.
// Returns:
//   返回设置前的undo启用状态.
// -------------------------------------------------------------------------
static bool         EnableUndo(bool isEnable);
3. 增加如下一些函数 :
    A. Mx_PutEntityInView ,把一个实体放到视区中,
    B. Mx_SetBright, 设置当前显示亮度
    增加MxDraw::DrawImage函数,可以在控件中方便插入一个光栅图.,支持PNG透明图片
       // -------------------------------------------------------------------------
// Summary:
//   向当前图形上插入Image对象
// Parameters:
//hOcx - 插入的控件名柄
//   dPosX - 插入位置X坐标
//   dPosY - 插入位置Y坐标
//   dScale - 缩放比例
//dAng - 插入旋转角度,单位为度
//pszFilePath - Image文件名,可以是Http路径.
//blkRecId - 插入的块表记录,如果为空,插入当前模形空间中。
// Returns:
//   返回插入的图象对象id,如果id为空,插入失败,调用MxDraw::GetLastError()函数返回错误信息
// -------------------------------------------------------------------------
static McDbObjectId DrawImage(MxDraw::MXDRAWOCXHANDLE hOcx,LPCTSTR pszFilePath,DOUBLE dPosX, DOUBLE dPosY, DOUBLE

dScale = 1.0,
DOUBLE dAng = 0.0,McDbObjectId blkRecId = McDbObjectId::kNull);

    C. 增加获得控件CStatusBarInformationReactor状态条信息的反应器.

4. 增加打开DWG文件,可以指定那内容不需要读取,达到快速打开文件的功能

5. 增加图纸比较功能

6. 增加保存图纸可以设置密码,和打开有密码的DWG文件.

7. 增加图面批注接口,批注对象是自定实体实现

8. 增加电子图章接口,图章对象是自定实体实现

9. 修改布局打印,白色实体打印不出来,点划显示成小短线,等问题。




couple 发表于 2011-5-30 11:12:05

楼主相当给力,我目前正在学习ARX,先学习学习,以后可以多交流~~

mxdwg 发表于 2011-8-19 10:55:42

2011.08.18更新下载地址

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

1.   增加多行文字编辑功能,并提供源码,在samples\PropertyEditor\PropertyEditor.sln工程中
         http://www.mxdraw.com/upload/Image/mtext.jpg

2.   增加MxGraph类,用于搜索CAD图上的曲线组成的图形,并创建图类型的数据结构,方便图面搜索使用,现在可以用它求两个曲线,或两点之间的最短路径
如:


// 求两个曲线,之间的最短路径

// 定义一个图对象
MxGraph mxgraph;
MrxDbgRbList spFilter = Mx::mcutBuildList(RTDXF0,_T("LINE,ARC,POLYLINE"),0);
// 由一个曲线id1,创建图.
if(mxgraph.Create(id1,spFilter.data()) != MxGraph::kOk)
{
return false;
}
// 得到边id1在图中的编号
long lNum11 = MXGRAPH_NULL_NUMBER;
long lNum12 = MXGRAPH_NULL_NUMBER;
if(!mxgraph.GetEdgeNumber(id1,lNum11,lNum12) )
return false;
// 得到边id2在图中的编号
long lNum21 = MXGRAPH_NULL_NUMBER;
long lNum22 = MXGRAPH_NULL_NUMBER;
if(!mxgraph.GetEdgeNumber(id2,lNum21,lNum22) )
return false;
long lSNum = lNum11;
long lENum = lNum21;
{
std::vector<MxGraphVertex*> vecVertex;
std::vector<MxGraphEdge*>   vecEdge;
// 返回端点lNum11到端点lNum21的最短路径
mxgraph.GetShortestPath(lNum11,lNum21,vecVertex,vecEdge);
if(vecEdge->GetId() == id1)
{
   lSNum = lNum11;
}
else
{
   lSNum = lNum12;
}
if( vecEdge->GetId() == id2)
{
   lENum = lNum21;
}
else
{
   lENum = lNum22;
}
}

std::vector<MxGraphVertex*> vecVertex;
std::vector<MxGraphEdge*>   vecEdge;
mxgraph.GetShortestPath(lSNum,lENum,vecVertex,vecEdge);
if(vecEdge.size() < 2
|| vecEdge->GetId() != id1
|| vecEdge->GetId() != id2
)
{
return false;
}
3.   修改了一堆错误

xgready 发表于 2011-10-9 21:34:46

坚决支持!

mxdwg 发表于 2011-10-24 14:33:43

2011.10.23更新
http://www.mxdraw.com/?p=10&a=view&r=41

华军下载地址:
http://www.newhua.com/soft/100760.htm

更新内容:
1.增加视区变化通知接口
COM接口:事件名称 :Mx_ViewModify,如Js调用
function CustomEvent(sEventName)
{

if(sEventName == "Mx_ViewModify")
   {
var pParam = wdwg.CustomEventParam();
      // 得到当前视区显示的文档范围.
      // cent.x
      //alert( pParam.AtDouble(0));
      // cent.y
      // alert( pParam.AtDouble(1));
      // width
      //alert( pParam.AtDouble(2));
      // hieght
      //alert( pParam.AtDouble(3));
   }
}
VC接口:
CMxDrawFilterWinMsgObject::OnViewModify

2.增加Mx_DrawImageToBackground函数,把光栅图当着背景显示,VC接口为OpenBackgroundImageFile

3.增加,保存dwg图时,保存预览图功能,并把当前的显示范围也保存

4.命令行状态和多行文本编辑支持,右键菜单,复制粘贴,命令行窗口大小可以调用。并支持F2显示桌面窗口

5.保存的时候 ,是否自动备分,设置接口MxDraw::SetIsAutoBakFile

6.增加简化命令输入,和定制命令名

7.支持文件保存为二进流,和从二进制流加载图纸功能。
COM接口:ReadBinStream ,WriteBinStream
如VB代码:
            Dim aryData   As Variant
            MxDrawX1.WriteBinStream aryData, "", 23

            Dim ln As Long
            ln = UBound(aryData)

            ReDim sbyte(0 To ln) As Byte

            Dim str$
            For i = 0 To ln
                sbyte(i) = aryData(i)
                'str = str & " " & (aryData(i))
            Next

            'MsgBox str

            'MxDrawX1.ReadBinStream aryData, "", 16777215

            MxDrawX1.ReadBinStream sbyte, "", 16777215

8.修改布局名称支持中文

9.增加打印功能从图上选择打印范围 ,或取上一次打印范围等功能,输入打印范围
同时增加:Mx_Print 接口,可以不出打印窗口,而直接打印,可以用这个接口实现批量打印
            例如:VB代码。

            '打印10,10,100,100范围的图纸到当前系统默认设置打印机
            Dim printParam As MxDrawResbuf
            Set printParam = New MxDrawResbuf
            ' 打印的左下角10,10
            printParam.AddDouble 10
            printParam.AddDouble 10

            ' 打印的右上角100,100
            printParam.AddDouble 100
            printParam.AddDouble 100

            ' 开始打印
            MxDrawX1.CallCustomFunctionEx "Mx_Print", printParam


10.命令行支持输入相对坐标,距离,输入关键字等功能

11.增加判断了图纸的改动接口,MxDraw::IsModifyed

12.增加保存jpg文件也能上传到服务器

13.修改AddLayer函数,有反删除功能

14.增加曲线的延长线相交

15.增加显示或隐基藏工具条上某个按钮功能,并增加工具条从服务器上的文件加载。

16.修改带形的线显示不对问题

17.增加OLE对象的读取与保存功能

18.增加自定义实体的CDC绘接口,用户可以使用CDC指定绘制图形,来实现更多的特殊的显示效果,使用该接口实现了一个DrawImageMark 函数,可以在图上绘一个图形标记,而它不会随视区的缩放而变化。
接口为 :MxDraw::DrawImageMark

19.增加PL线打碎功能。

完整武器 发表于 2011-10-26 00:30:34

太牛了 厉害!!!

mxdwg 发表于 2011-12-5 12:33:14

2011.12.02更新下载地址
http://www.mxdraw.com/?p=10&a=view&r=42

1. 完善与用户交输入函数,并把与用户交的函数用类封装,源码在sample\MxMrxDbg中方便使用,详列表如下
MrxDbgUiPrAngle 对应 acedGetAngle
MrxDbgUiPrDist对应 acedGetDist
MrxDbgUiPrDouble对应 acedGetReal
MrxDbgUiPrEntity对应 acedEntSel
MrxDbgUiPrInt   对应 acedGetInt
MrxDbgUiPrKeyWord 对应 acedGetKword
MrxDbgUiPrPoint   对应 acedGetPoint
MrxDbgUiPrString对应 acedGetString
2. 新增加,剪切,延伸,导角,导圆角,打碎,绘多义线,绘多边线功能,源码在sample\MxEdit中
如 绘多边线的代码:




void CMxDrawPolygon::Do()
{
MrxDbgUiPrIntDef getEdgeNum(_T("输入边的数目"),NULL,MrxDbgUiPrInt::kRange,s_iEdgeNum);
getEdgeNum.setRange(3,3000);
if(getEdgeNum.go() != MrxDbgUiPrBase::kOk)
return;

s_iEdgeNum = getEdgeNum.value();

MrxDbgUiPrPoint getCenterPoint(_T("指定正多边形的中心点或 [边(E)]"),_T("E"));
MrxDbgUiPrBase::Status ret = getCenterPoint.go();

if(ret == MrxDbgUiPrBase::kOk)
{
// 点取多边形的中点.
McGePoint3d centerPoint = getCenterPoint.value();

MrxDbgUiPrKeyWordDef getKey(_T("[内接于圆(I)/外切于圆(C)]"),
   _T("I C"),
   s_isInternallyTangent ? _T("I") : _T("C"),
   s_isInternallyTangent ? _T("内接") : _T("外切")
   );

if(getKey.go() != MrxDbgUiPrBase::kOk)
   return;

if(getKey.isKeyWordPicked(_T("I")) )
{
   s_isInternallyTangent = true;
}
else if(getKey.isKeyWordPicked(_T("C")) )
{
   s_isInternallyTangent = false;
}

//

MrxDbgUiPrDist getOtherDist(_T("指定圆的半径"),NULL,MrxDbgUiPrDist::kNoNegNoZero,centerPoint);

CMxDrawPolygonDragDraw dragDraw(centerPoint,s_isInternallyTangent,s_iEdgeNum);
getOtherDist.setUserDraw(&dragDraw);

if(getOtherDist.go() == MrxDbgUiPrBase::kOk)
{
   double dDist = getOtherDist.value();
   McDbPolyline* pPolyline = NULL;
   if(getOtherDist.isKeyboardInput() )
    pPolyline = dragDraw.GetObject(&dDist);
   else
    pPolyline = dragDraw.GetObject();

   MrxDbgUtils::addToCurrentSpaceAndClose(pPolyline);
}
}
else if(ret == MrxDbgUiPrBase::kKeyWord)
{
// 输入了关键字.
if(getCenterPoint.isKeyWordPicked(_T("E")))
{
   // 由边绘制多边线。
   MrxDbgUiPrPoint getFristPoint(_T("指定边的第一个端点"));
   MrxDbgUiPrBase::Status ret = getFristPoint.go();
   if(ret != MrxDbgUiPrBase::kOk)
    return;

   McGePoint3d firstPoint = getFristPoint.value();

   MrxDbgUiPrPoint getSecondPoint(_T("指定边的第二个端点"));

   CMxDrawPolygonFromTowPoint dragDraw(firstPoint,s_iEdgeNum);
   getSecondPoint.setUserDraw(&dragDraw);

   if(getSecondPoint.go() == MrxDbgUiPrBase::kOk)
   {
    McDbPolyline* pPolyline = dragDraw.GetObject(getSecondPoint.value());
    MrxDbgUtils::addToCurrentSpaceAndClose(pPolyline);
   }
}
}
}



3. 完善绘直线,绘圆,绘圆弧,缩放,旋转命令
4. 增加把一个实体绘制到jpg文件函数
      
// -------------------------------------------------------------------------
// Summary:
//   把一个实体显示保存到一个jpg文件。
// Parameters:
//pEnt   - 该实体可以是一个临时的对象,不需要求必须在数据库中
//sJpgFilePath - 保存的jpg文件路径
//iWidth   - jpg文件的像素宽度,-1默认为1000
//iHeight   - jpg文件的像素高度,-1默认为1000
//pBkColor- 绘制的背景颜色,为空取当前背景颜色.
//pDatabase- 数据库指针,传空,就取pEnt本身所在数据库。
// Returns:
//   成功返TRUE
// -------------------------------------------------------------------------
static BOOL MxDraw::DrawEntityToJpg(
IN McDbEntity* pEnt,
IN CString sJpgFilePath,
IN int iWidth = -1,
IN int iHeight = -1,
IN COLORREF* pBkColor= NULL,
IN McDbDatabase* pDatabase = NULL);
页: 1 2 3 4 5 6 [7] 8 9 10 11
查看完整版本: 梦想mxdraw浏览,编辑控件