mxdwg
发表于 2013-6-28 08:51:38
2013.06.08更新
1. 增加移动平台支持,可以在Android,苹果系统上运行
下载地址,官网首页
www.mxdraw.com
下面是,Android开发教程目录,完整文档下载:
http://www.mxdraw.com/index.php?m=content&c=index&a=show&catid=25&id=22
更新时间:2013年6月20日
Android开发使用控件入门
成都杰图有限公司
WEB:HTTP://WWW.MXDRAW.COM/
北京杰图凯德软件有限公司
WEB:http://www.jietusoft.com.cn
保留所有权利
未经许可,请勿分发本文档的部分或全部
1、 环境搭建:··· 3
1.1、 下载Android SDK· 3
1.2、 下载JDK6· 4
1.3、 下载Eclipse3.4.1· 6
1.4、 下载Eclipse的Android ADT插件·· 7
1.5、 在eclipse中集成c/c++开发环境,安装CDT插件·· 10
1.6、 NDK安装·· 10
1.7、 安装Cygwin· 11
1.8、 安装Sequoyah· 12
2、 第一个例子Hello Word· 13
2.1、 运行AVD Manager,创建android的虚拟机·· 13
2.2、 打开Ndk hello-jni的例子·· 14
2.3、 运行控件例程·· 20
Doc 文档下载:
http://www.mxdraw.com/download/AndroidDev.doc
mxdwg
发表于 2013-9-10 10:27:50
控件2013.09.10最新更新
下载地址:
http://www.mxdraw.com/index.php?m=content&c=index&a=show&catid=41&id=23
更新内容
1. 增加命令调用时可传参数,Mx_SendStringToExecute
下面代码是调用一个绘矩形框命令,并设置线宽为10.
param.AddString "Mx_Rectang"
'是绘制矩形的线宽.这是命令参数。
param.AddDouble 10
MxDrawX1.CallCustomFunctionEx "Mx_SendStringToExecute", param
2.增加Mx_SendStringToExecuteFun ,可以实现在程序中直接调用命令函数
3.修改jpg打印时,在个别情况下,打印不对的问题
4.修改调用clear函数时,把一个对象内存释放,可能会出错的问题
5.增加控件自定义参数功能,这样可在用户的mrx程序访问到
6.修改打开文件函数,OpenDwgFile ,使用其更为健壮,在控件还未初始完成时,也能打开成功
7.增加mcdbEntitysLastCmd函数,得到一个命令执行完后,往数据库中新增加的对象id数组
8.增加面积,周长计算命令
9.修改保存图纸,等一堆的小问题,现在控件版本应该是最稳定了
10. 支持2013最新dwg文件格式
11. 增加MxDraw::BuilderHatchFromPoint函数,根据一个点,在当前控件显示范围内搜缩闭合区域,然后用该闭合区域创建填充对象
例如:McDbHatch* GetTestHatch()
{
MrxDbgTmpDisableSnap disableSnap;
McGePoint3d pickPt;
McDbHatch* pHatch = NULL;
while(true)
{
MrxDbgUiPrPoint getPoint(_T("拾取内部点"));
getPoint.setDynamicInputType(McEdJig::kXYCoordInput);
if(getPoint.go() != MrxDbgUiPrBase::kOk)
{
return NULL;
}
pickPt = getPoint.value();
pHatch = MxDraw::BuilderHatchFromPoint(pickPt);
if(pHatch != NULL)
{
break;
}
else
{
AfxMessageBox(_T("未找有效边界 \n 边界不闭合,或者边界对象不可访问.") );
}
}
if(pHatch == NULL)
returnNULL;
McDbExtents extens;
if(pHatch->getGeomExtents(extens) != Mcad::eOk)
{
delete pHatch;
returnNULL;
}
MrxDbgRbList spFilter = Mx::mcutBuildList(RTDXF0,_T("TEXT,MTEXT,ROTATEDDIMENSION,ALIGNEDDIMENSION,DIMENSION"),0);
MrxDbgSelSet ss;
ss.crossingSelect(extens.minPoint(),extens.maxPoint(),spFilter.data() );
McDbObjectIdArray aryText;
ss.asArray(aryText);
McDbObjectIdArray aryLineId;
for(int i = 0; i < aryText.length();i++)
{
McDbObjectPointer<McDbEntity> spEnt(aryText,McDb::kForRead);
if(spEnt.openStatus() != Mcad::eOk)
continue;
McDbDimension* pDim = McDbDimension::cast(spEnt.object() );
if(pDim == NULL)
{
McGePoint3d pt1;
McGePoint3d pt2;
McGePoint3d pt3;
McGePoint3d pt4;
if(!Mx::GetTextBox(spEnt.object(),
pt1,
pt2,
pt3,
pt4
) )
{
continue;
}
std::vector<McGePoint2d> vecPolyline;
vecPolyline.push_back(pt1.convertXYPlanar2d());
vecPolyline.push_back(pt2.convertXYPlanar2d());
vecPolyline.push_back(pt3.convertXYPlanar2d());
vecPolyline.push_back(pt4.convertXYPlanar2d());
if(MxDraw::PointInPolygon(vecPolyline,pickPt.x,pickPt.y) )
continue;
aryLineId.append(TestDrawLine(pt1,pt2) );
aryLineId.append(TestDrawLine(pt2,pt3) );
aryLineId.append(TestDrawLine(pt3,pt4) );
aryLineId.append(TestDrawLine(pt4,pt1) );
}
else
{
McDbVoidPtrArray entitySet;
pDim->explode(entitySet);
for(int j = 0; j < entitySet.length();j++)
{
McDbObject* pObj = (McDbObject*)entitySet;
std::auto_ptr<McDbObject> spObj(pObj);
McDbMText* pMText = McDbMText::cast(pObj);
if(pMText != NULL)
{
McGePoint3d pt1;
McGePoint3d pt2;
McGePoint3d pt3;
McGePoint3d pt4;
if(!Mx::GetTextBox(pMText,
pt1,
pt2,
pt3,
pt4
) )
{
continue;
}
std::vector<McGePoint2d> vecPolyline;
vecPolyline.push_back(pt1.convertXYPlanar2d());
vecPolyline.push_back(pt2.convertXYPlanar2d());
vecPolyline.push_back(pt3.convertXYPlanar2d());
vecPolyline.push_back(pt4.convertXYPlanar2d());
if(MxDraw::PointInPolygon(vecPolyline,pickPt.x,pickPt.y) )
continue;
aryLineId.append(TestDrawLine(pt1,pt2) );
aryLineId.append(TestDrawLine(pt2,pt3) );
aryLineId.append(TestDrawLine(pt3,pt4) );
aryLineId.append(TestDrawLine(pt4,pt1) );
}
}
}
}
if(aryLineId.isEmpty() )
{
//MrxDbgUtils::addToCurrentSpaceAndClose(pHatch);
return pHatch;
}
MxDraw::UpdateDisplay();
delete pHatch;
pHatch = MxDraw::BuilderHatchFromPoint(pickPt);
if(pHatch == NULL)
return NULL;
//MrxDbgUtils::addToCurrentSpaceAndClose(pHatch);
for(int i = 0; i < aryLineId.length();i++)
{
McDbObjectPointer<McDbEntity> spEnt(aryLineId,McDb::kForWrite);
if(spEnt.openStatus() != Mcad::eOk)
continue;
spEnt->erase();
}
return pHatch;
}
风树
发表于 2013-10-24 13:43:13
mxdwg 发表于 2013-9-10 10:27 static/image/common/back.gif
控件2013.09.10最新更新
下载地址:
牛人啊,有很好的前景,支持
mxdwg
发表于 2014-2-20 14:41:25
控件2014.02.18最新更新
下载地址:
http://www.mxdraw.com/index.php?m=content&c=index&a=show&catid=41&id=24
1.完善对2013 DWG 文件格式支持
2.增加64位版本
3.升级到VC2010开发,控件不再需要安装VC运行库,就能使用
4. 增加使用COM接口,写自定义实体的功能
参数说明
BSTR pszGuid用来标识自定义实体的id
BSTR pszBlkRecName把自定义实体的加到块表记录的名称,如果为空,就加入到当前空间。例如: JS代码
var ent = mxOcx.DrawCustomEntity("TestMxCustomEntity", "");
ent.SetPoint("spt", frstPt);
ent.SetPoint("ept", secondPt);
5.增加使用COM接口,写动态拖放功能
动态拖放时的绘制事件
void DynWorldDraw(DOUBLE dX, DOUBLE dY, IDispatch* pWorldDraw, IDispatch* pData, LONG* pRet);
6.增加水印功能
例如:设置文件名d:mxcad.jpg,透明度为70,居中显示,x方向距离为5,y方向距离为5,如下
ocx.Watermark = "d:mxcad.jpg,70,5,5,1"
7.增加对组的支持,如创建组,删除组,得到组等函数
8.增加实体超连接功能,点击实体,可以跳到一指定的网页
9.增加右键弹出菜单功能
10.增加绘制动画功能
11.完善打印接口,新增IMxDrawPrint组件,可以实现,调用打印窗口打印,直接打印,批量打印,多个控件内容组合打印,与网页内容一同打印,指定范围打印,当前显示内容打印等功能
12.完善读写扩展数的COM接口,读写扩展数据变成非常方便。
如:function WriteXData() {
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要写扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
if (ent.SetxDataString("ExDataName", 0, "ExDataValue")) {
alert("写扩展数据成功");
}
else {
alert("写扩展数据失败");
}
}
function ReadXData() {
var selEnt = mxOcx.NewComObject("IMxDrawUiPrEntity");
selEnt.message = "选择要读取扩展数据的对象";
if (selEnt.go() != 1)
return;
var ent = selEnt.Entity();
if (ent == null)
return;
var val = ent.GetxDataString2("ExDataName", 0);
if (mxOcx.IsOk()) {
alert(val);
}
else {
alert("没有扩展数!");
}
}
13.增加一堆的与用户交互的COM接口组件,如:IMxDrawUiPrPoint,IMxDrawUiPrAngle,IMxDrawUiPrDist,IMxDrawUiPrDouble,IMxDrawUiPrEntity,IMxDrawUiPrInt,IMxDrawUiPrKeyWord,IMxDrawUiPrString
例如: 与用户交互取点:
var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getPt.message = "点取打印范围第一点";
if (getPt.go() != 1) {
return;
}
var frstPt = getPt.value();
if (frstPt == null)
return;
14.增加带参数执行命令函数,和把命令当着函数调用的功能// -------------------------------------------------------------------------
// Summary:
// 执行一个命令,可以传参数.
// Parameters:
// pszExecute - 命令名
// pParam - 命令参数,IMxDrawResbuf对象
// -------------------------------------------------------------------------
VARIANT_BOOL SendStringToExecuteEx(BSTR sCmdName, IDispatch* pParam);
// -------------------------------------------------------------------------
// Summary:
// 把命令当着函数执行,可以传参数.
// Parameters:
// pszExecute - 命令名
// pParam - 命令参数,IMxDrawResbuf对象
// -------------------------------------------------------------------------
VARIANT_BOOL SendStringToExecuteFun(BSTR sCmdName, IDispatch* pParam);
15.增加动态绘制失量圆,失量线功能,视区移动后会自动消失
// -------------------------------------------------------------------------
// Summary:
// 绘制失量圆
// Parameters:
// dCenX - 失量圆中心点X,文档坐标
// dCenY - 失量圆中心点Y,文档坐标
// dR - 失量圆半径,,文档坐标
// lColor - 颜色
// Remarks:
// 例如: JS
//
// mxOcx.PutEntityInView(ent.ObjectID, 300);
//
//
// var dLen = mxOcx.ViewLongToDocCoord(80);
//
// // 绘制一个标记圆.
// mxOcx.DrawVectorCircle(ent.Position.x,
// ent.Position.y,
// dLen, 65280);
//
// -------------------------------------------------------------------------
VARIANT_BOOL DrawVectorCircle(DOUBLE dCenX, DOUBLE dCenY, DOUBLE dR,LONG lColor);
// -------------------------------------------------------------------------
// Summary:
// 绘制失量线
// Parameters:
// dX1- 开始点X值
// dY1- 开始点Y值
// dX2- 结束点X值
// dY2- 结束点Y值
// lColor - 颜色
// -------------------------------------------------------------------------
VARIANT_BOOL DrawVectorLine(DOUBLE dX1, DOUBLE dY1, DOUBLE dX2, DOUBLE dY2,LONG lColor);
16.增加控件浏览模式切换功能
例如: js代码var isBrowner = false;
function BrownerMode() {
isBrowner = !isBrowner;
mxOcx.BrowseMode = isBrowner;
mxOcx.ShowMenuBar = !isBrowner;
mxOcx.ShowPropertyWindow = !isBrowner;
17.把常用的自定义事件导出,如:void MxKeyDown(LONG lVk, LONG* pRet);
void MxKeyUp(LONG lVk, LONG* pRet)
void ObjectGripEdit(LONGLONG lId, LONG iGridIndex)
void OpenFileComplete(void)
void InitComplete(void)
void SysVarChanged(BSTR sVarName)
void HyperlinkClick(IDispatch* pEntity, DOUBLE dX, DOUBLE dY, LONG* pRet)
18.把常用的自定义函数导出,如:
VARIANT_BOOL PrintHtml(VARIANT_BOOL isShowPrintDialog, VARIANT_BOOL isPrintLineWidth);
void ClearUndoData(void)
DrawEntityToJpg(LONGLONG lId, BSTR sJpgFilePath, LONG iWidth, LONG iHeight, LONG lBkColor)
BSTR GetMTextContent(LONGLONG lId);
VARIANT_BOOL ExprotPdf(BSTR sPdfFileName, DOUBLE dPaperH, DOUBLE dPaperW, BSTR pszTitle, VARIANT_BOOL isExportLayout);
VARIANT_BOOL SendStringToExecuteEx(BSTR sCmdName, IDispatch* pParam);
VARIANT_BOOL SendStringToExecuteFun(BSTR sCmdName, IDispatch* pParam);
IDispatch* GetEntitysLastCmd(void);
LONGLONG DrawHatchFromPoint(DOUBLE dX, DOUBLE dY, DOUBLE dPatternScale);
VARIANT_BOOL IsRuningCommand(BSTR* sCmdName);
IDispatch* ScreenToDocCoord(DOUBLE dX, DOUBLE dY);
IDispatch* DocToScreenCoord(DOUBLE dX, DOUBLE dY);
VARIANT_BOOL IsIniting(void);
VARIANT_BOOL IsModifyed(void);
VARIANT_BOOL SetIsModifyed(VARIANT_BOOL isModifyed);
VARIANT_BOOL IsModelSpace(void);
VARIANT_BOOL StopAllCommand(void);
VARIANT_BOOL Regen(void);
BSTR GetCurrentLayout(void);
LONGLONG DrawImageMark(DOUBLE dPosX, DOUBLE dPosY, DOUBLE dScale, DOUBLE dAng, BSTR pszFileName, BSTR pszTwinkeImageFiles,VARIANT_BOOL isSaveData);
//….
19.完善控件COM接口,在网页更加方便调用控件功能 ,增加了一堆的函数
20.修改控件在网页调用的一堆细节问题
mxdwg
发表于 2014-3-31 14:08:25
控件2014.03.24最新更新
发布时间:2014-03-24 15:18:41
下载地址:
http://www.mxdraw.com/download/MxDraw5.2(20140324)TryVersion.exe
或华军下载:
http://www.onlinedown.net/soft/100760.htm
1. 增加选择块里面的实体
2. 增加捕捉块里面的实体
3. 增加全屏功能
4. 完善文字显示功能,比如支持文字斜体显示,字符中上标支持,修改一堆文字相关显示问题
5. 修块中实体的线型显示问题
6. 增加读写 McDb3dPolyline,McDb2dPolyline顶点中Z值,扩展数据
7. 增加曲线合并功能
8. 增加DWG图纸的用户自定义变量支持,user r1~r5(浮点数),user s1~s5(字符串),user i1~i5(整型)
9. 增加把鹰眼功能放到用户的界面上的接口
10, 完善打印功能,增加, 黑白打印,加粗加印等选项
mxdwg
发表于 2014-6-17 14:50:59
本帖最后由 mxdwg 于 2014-6-17 14:52 编辑
控件2014.06.10 安卓开发最新更新
http://www.mxdraw.com/index.php?m=content&c=index&a=show&catid=41&id=30
开发包下载地址:
http://www.mxdraw.com/MxDraw6.0Android(20140610)TryVersion.exe
安卓手机上的apk安装包:
http://www.mxdraw.com/MxDrawApp60.apk
安卓快速入门文档:
http://www.mxdraw.com/AndroidDev.doc
1. 推出稳定的控件的安卓开发包
2. 快速加载dwg图纸,在手机上浏览dwg图纸,使用了自定义格,缓存dwg文件,提高加载速度
3. 优化显示速度,目前在手机上看图已经很快了
虚拟机上,预览运行效果:
mxdwg
发表于 2014-7-30 10:51:18
本帖最后由 mxdwg 于 2014-7-30 10:52 编辑
控件2014.07.27最新更新
下载地址:
http://www.mxdraw.com/index.php?m=content&c=index&a=show&catid=41&id=32
或华军下载:
http://www.onlinedown.net/soft/100760.htm
1.增加快速选择命令
实现源码在:samples\MxEdit\MxEdit\QuickSlectDialog.cpp
2.增加对https协议的支持,可以打开https上的dwg文件
3.增加扩展夹点的编辑功能,通过移动夹点,可对实体的放大小,缩小,移动
4.增加COM接口的自定义实体,可以设置它的属性显示名称
5.增加图纸比较COM组件接口,并完善了图纸比较功能,可以全图,或指区域比较,并自动标出被修改的,新增的,删除的对象。
例如JS语言:
// points 比较范围 ,filter是过滤条件,可以指定是否比较某些图层
function DoImpCompare(points, filter) {
var ocx1 = document.getElementById("MxDrawXCtrl1");
var ocx2 = document.getElementById("MxDrawXCtrl2");
// 得到要比较的两张图的数据库
var database1 = ocx1.GetDatabase();
var database2 = ocx2.GetDatabase();
// 创建一个比较对象.
var compare1 = ocx1.NewComObject("IMxDrawCompare");
compare1.Bound = points;
// 把 database1当着原图,database2 当着修改后的图纸进行比较
compare1.Do(database1, database2, filter);
// 得到比较后,被修改的对象ID.
var aryDifferent1 = compare1.GetCurveIdsOfTheDifferent();
// 在图上,标注出修改的地方
compare1.DrawFlag(1.0, false);
// 反过来比较一下,用来确定,那些对象是新增加的。
var compare2 = ocx1.NewComObject("IMxDrawCompare");
compare2.Bound = points;
compare2.Do(database2, database1, filter);
var aryDifferent2 = compare2.GetCurveIdsOfTheDifferent();
compare2.DrawFlag(1.0, true);
// 得到被删除,修改,和新增加的对象id.
var iErase = 0;
var iModify = 0;
var iAdd = 0;
var i = 0;
for (; i < aryDifferent1.Count; i++) {
var lId = aryDifferent1.AtObjectId(i);
if (compare1.GetIsErase(lId)) {
iErase = iErase + 1;
}
else {
iModify = iModify + 1;
}
}
i = 0;
for (; i < aryDifferent2.Count; i++) {
var lId = aryDifferent2.AtObjectId(i);
if (compare2.GetIsErase(lId)) {
iAdd = iAdd + 1;
}
}
alert(iModify + "对象修改," + iErase + "对象删除," + iAdd + "对象被增加");
}
6. 增加从服务器上,动态加载mxt扩展模块功能,并且工具条上的图标也可以从该扩展块加载
如JS:
function InitMxDrawX() {
var mxOcx = document.getElementById("MxDrawXCtrl");
if (mxOcx) {
if (!mxOcx.IsIniting()) {
clearInterval(mxtime);
// 动态从服务器上加载扩展模块.
var mxOcx = document.all.item("MxDrawXCtrl");
mxOcx.LoadModule("~/MyExtApp#3.0");
// 动态加工具条
mxOcx.LoadToolBar("~/MxDraw-ToolBar-Draw.mxt",true);
}
}
}
mxtime = setInterval(InitMxDrawX, 100);
7. 修改dwf文件的加载,颜色显问题。
8. 支持最新的AutoCAD2005图纸,目前能支持所有版本的dwg文件
9. 把控件升级到vs2012版本,可以同时提供vs2010,vs2012两个版本的C++语言编程接口
10. 增加控件对谷歌,火狐浏览器的支持,
文档在: MxDraw52\Src\MxDraw5.2\samples\梦想控件15-谷歌,火狐浏览器中使用控件.doc
11.修改一堆的细节问题。
比如:
支持斜体字显示
支持和字符中上标支持.
支持块中的实体的线型随层时,并不能显示随层
增加读写mxg也支持内存方式
修改标注文字位置问题
打开函数支持png文件
修改栅格,捕捉等系统变量随图保存问题
增加自定义实体捕捉功能等等...
mxdwg
发表于 2014-12-22 17:17:37
推出梦想CAD 3d控件
发布时间:2014-11-12 20:41:41
控件2014.11.12最新更新
下载地址:
http://www.mxdraw.com/download/MxDraw3d6.0(20141106)TryVersion.exe
或华军下载:
http://www.onlinedown.net/soft/225950.htm
1. 支持文档格式,igs,stl,dwg,m3d等通用标准的3d文件格式
2. 支持常见的三维实体建模
3. 支持,旋转,沿路径,拉伸,偏移等方式建模
4. 支持bool运算方式建模
5. 支持32,64位系统,支持网页使用,提供ocx方式接口
6. 兼容二维绘图功能
7. 使用vc2010开发
mxdwg
发表于 2014-12-22 17:18:29
3d控件2014.12.02最新更新
发布时间:2014-12-03 15:12:10
下载地址:
http://www.mxdraw.com/download/MxDraw3d6.0(20141202)TryVersion.exe
或华军下载:
http://www.onlinedown.net/soft/225950.htm
1. 增加创建管道例子
2. 增加偏移创建例子
3. 增加相减,相加,合并运算
4. 增加导角运算
5. 形坐标变换运算
6. 演示创建房间例程
\
mxdwg
发表于 2014-12-22 17:19:22
控件2014.12.03最新更新
发布时间:2014-12-03 15:05:19
下载地址:
http://www.mxdraw.com/download/MxDraw5.2(20141203)TryVersion.exe
或华军下载:
http://www.onlinedown.net/soft/100760.htm
1. 增加McDbPolyline如下函数
SegType segType (unsigned int index) const;
Mcad::ErrorStatus getLineSegAt (unsigned int index,
McGeLineSeg2d& ln) const;
Mcad::ErrorStatus getArcSegAt (unsigned int index,
McGeCircArc2d& arc) const;
2. McDbCurve的extend函数,延伸曲线函数
virtual Mcad::ErrorStatus extend(Mdesk::Boolean extendStart,
const McGePoint3d& toPoint);
3.修改图块插入时,标注的中的匿名块,互相覆盖问题
4.增加McDbHatch函数
Mcad::ErrorStatus appendLoop(Mdesk::Int32 loopType,
const McDbObjectIdArray& dbObjIds);
5.增加MxDraw创建视口函数
static McDbObjectId CreateViewport1(McGePoint3d ptLB,McGePoint3d ptRT,
McGePoint3d ptTargetLB,McGePoint3d ptTargetRT
);
6.修改各种细节上的错误。
页:
1
2
3
4
5
6
7
8
[9]
10
11