CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据

在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据。下面帮助的完整例子,在控件安装目录的 Sample\Ie\iedemo.htm 中。

主要用到函数说明:

_DMxDrawX::InsertBlock

向数据库中插入一个图块,DWG图块文件可以是本地文件,也可以是网络文件。详细说明如下:函数成功返回1,失败返回0。

参数 说明
BSTR pszDwgFileName
图块定义的dwg 文件,支持http://开头的网络路径

BSTR pszBlockName
新插入的图块名

_DMxDrawX::DrawBlockReference

绘制一个块引用对象,返回新绘的对象id。详细说明如下:

参数 说明
DOUBLE dPosX  
插入点的X坐标

DOUBLE dPosY
插入点的Y坐标

BSTR pszBlkName
图块名

DOUBLE dScale  
图块缩放比例

DOUBLE dAng
图块的旋转角度

MxDrawDatabase::ObjectIdToObject

由实体id返回实体对象。

MxDrawEntity::SetXData

设置实体的扩展数据,详细说明如下:

参数 说明
[in] IMxDrawResbuf* pXData
扩展数据链表

MxDrawEntity::GetXData

返回实体的扩展数据。

js中实现代码说明:

绘制一个块引用对象,并向新绘的对象写一个扩展数据,比如GUID,用来标识它。

// 得到网页中的控件对象
mxOcx = document.all.item("MxDrawXCtrl");
mxOcx.focus();

把服务器上的dwg文件,插入到控件中,也可以是一个本地文件.
if(mxOcx.InsertBlock("http://www.mxdraw.com/downland/test.dwg","MyBlkName") != 0)
{
// 与用户交互,从图上点取一个插入点.
    var point = mxOcx.GetPoint(null,"\n 点插入点:");
if(point == null)
{
// 用点击了取消键.
return;
}
// 绘制一个块引用对象,point.x,point.y是插入位置,MyBlkName是引用的块表记录名称.
    var blkRefId = mxOcx.DrawBlockReference(point.x,point.y,"MyBlkName",1.0,0.0);

    // 得到控件的数据库对象.

    var database = mxOcx.GetDatabase();
    //由块引用对象id,得到块引用实体.
    var ent = database.ObjectIdToObject(blkRefId);

    if(ent == null)
    {
          alert("插入失败");
return;
     }

// 为新插入的对象写一个扩展数据,值为"guid val 324322"
         WriteGuid("guid val 324322",ent,mxOcx)

// 缩放视区,把所有实体都放到视区中显示.
         mxOcx.ZoomAll();
alert("插入成功");
     }
     else
     {
alert("插入失败");
     }
}

读取扩展数据:

// 得到网页中的控件对象.
var mxOcx = document.all.item("MxDrawXCtrl");

// 与用户交互,在图上选择一个实体
var ent = mxOcx.GetEntity("选择要读扩展数据的实体:");
 if(ent == null)
  {
// 用户取消了选择.
          return;
}
// 得到WriteGuid函数写的扩展数据.
  alert(ReadGuid(ent) );

写扩展数据:

function WriteGuid(guid,ent,mxOcx)
{
// 创建一个扩展数据连表对象.
var exData = mxOcx.CallCustomFunction("Mx_NewResbuf","");

// 添一个扩展数据,应用程序名,1001是AutoCAD dxf组码,表示"对象标注id数据"是一个扩展数据名称.
         exData.AddString("对象标注id数据",1001);

// 设置一个字符串扩展数据,1000是AutoCAD dxf组码,表示是一个字符串
          exData.AddString(guid,1000);

// 设置对象扩展数据.
         ent.SetXData(exData);
}

原文地址:https://www.cnblogs.com/yzy0224/p/10955647.html

时间: 2024-10-18 16:58:20

CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据的相关文章

CAD在网页中如何实现嵌套打印?

当用户需要打印两个控件的图纸时,可以采用嵌套打印实现.点击此处在线演示. 实现嵌套打印功能,首先将两个控件放入网页中,js代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <p align="center">   <object classid="clsid:74A777F8-7A8F-4e7c-AF

网页中插入Flash动画(.swf)代码和常用参数设置

我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标签,是在刚学习html的时候,那时书中插入flash只有最简单的<embed src="" width="" height=""></embed>一句,而且在很长一段时间里,只要网页中插入flash我也都是这样写的,当时认为,

在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法

在网页中引用DWG控件,交互绘图,和响应鼠标点击对象的方法[MXDRAW CAD控件文档]下面帮助的完整例子,在控件安装目录的Sample\Ie\iedemo.htm中. 主要用到函数说明A. ImplementCommandEventFun控件的命令事件函数,与用户交互的操作,需要放到命令事件函数内实现,这样控件才能保证正常的Windows 消息循环被处理.B. ImplementMouseEventFun控件的鼠标事件函数,可以用JS程序里,响应鼠标事件,详细说明如下:void MouseE

一次性设置网页中所有链接均在新窗口中打开的代码? - 落叶的星空的日志 - 网易博客

这是设置在新窗口中打开的代码:target=_blank   设置单个连接加在herf前 如: <a href="网站地址">共享空间</a>如果要点了这个文字以后重新打开一个窗口的话,代码是:<a href="网站地址"target="_blank">共享空间</a> 方法一: 在代码视图的<head></head>之间加入<base target="bla

HTML之:让网页中的&lt;a&gt;标签属性统一设置-如‘新窗口打开’

在开发过程中,我们往往想在页面中,给<a>设置一个统一的默认格式,例如我们想让链接:“在新窗口打开”,我们就可以使用<base>标签 在网页中添加这段代码: <head> <base target="_blank"> </head> [注解] <base> 标签为页面上的所有链接规定默认地址或默认目标. 通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白. 使用 <base

在当前的webview中跳转到新的url 使用WebView组件显示网页

如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接.给WebView加一个事件监听对象(WebViewClient)并重写其中的一些方法:shouldOverrideUrlLoading:对网页中超链接按钮的响应.当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url. webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverri

抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程

本文主要介绍如何抓取网页中的内容.如何解决乱码问题.如何解决登录问题以及对所采集的数据进行处理显示的过程.效果如下所示: 1.下载网页并加载至HtmlAgilityPack 这里主要用WebClient类的DownloadString方法和HtmlAgilityPack中HtmlDocument类LoadHtml方法来实现.主要代码如下. var url = page == 1 ? "http://www.cnblogs.com/" : "http://www.cnblogs

博客代码:iframe—网页中嵌入其他网页

iframe 是一个可以把另外一个网页嵌入到一个网页里的代码,非常有用.对于一个内容不错的网页,要方便地把它搬到自己的博客里,用这个代码最合适.而对于在新浪博客里不支持的一些网页效果和代码,可先把他们设置好,在支持他们的网站上使用,或上传到一个免费的网络空间或网络硬盘里,获取相应的网页地址,然后用 iframe嵌入到新浪博客里,非常好用! 一.固定位置的iframe代码: <DIV align=center><IFRAME src="http://weather.265.com

如何在网页中插入视频(简单实用)

很多人会问在网页中怎么插入视频,在HTML5中有新标签--video标签,但是兼容性可就没那么好了. 下面这段代码可以直接使用,里面的几个路径注意一下. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"