CAD交互绘制批注(网页版)
2024-08-29 20:59:10
js中实现代码说明:
动态拖放时的绘制事件:
function DynWorldDrawComment( pCustomEntity, pWorldDraw, curPt) {
// 得到绘制参数. var sText = pCustomEntity.GetString("Text");
var dTextHeight = pCustomEntity.GetDouble("TextHeight");
var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");
var dShapRadius = pCustomEntity.GetDouble("ShapRadius");
// 创建一个批注对象.
var comment = mxOcx.NewEntity("IMxDrawComment");
comment.Text = sText;
comment.TextHeight = dTextHeight;
comment.EdgeNumber = iEdgeNumber;
comment.ShapRadius = dShapRadius;
comment.basePoint = curPt;
comment.Position = curPt;
pWorldDraw.TextStyle = "MyCommentFont";
// 动态绘制.
pWorldDraw.DrawEntity(comment);
}
动态绘制文字:
function DynWorldDrawComment2( pCustomEntity,pWorldDraw, curPt) {
// 得到绘制参数. var sText = pCustomEntity.GetString("Text");
var dTextHeight = pCustomEntity.GetDouble("TextHeight");
var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");
var dShapRadius = pCustomEntity.GetDouble("ShapRadius");
var basePoint = pCustomEntity.GetPoint("BasePoint");
// 创建一个批注对象.
var comment = mxOcx.NewEntity("IMxDrawComment");
comment.Text = sText;
comment.TextHeight = dTextHeight;
comment.EdgeNumber = iEdgeNumber;
comment.ShapRadius = dShapRadius;
comment.basePoint = basePoint;
comment.Position = curPt;
// 设置文字样式。
pWorldDraw.TextStyle = "MyCommentFont";
// 动态绘制.
pWorldDraw.DrawEntity(comment);
}
动态绘制文字:
function DoComment() {
// 出来一个对象,让用户输入文字.
var winWidth = 440;
var winHeight = 140;
var winLeft = (screen.width - winWidth) / 2;
var winTop = (screen.height - winHeight) / 2 - 20;
var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'
var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入文字", str);
var txt;
if (typeof (rt) == "undefined") {
return;
} else {
var arr = rt.split(",");
txt = arr[0];
}
// 加入换行操作符\\P
//txt = txt + "\\PTEST";
// 创建一个文字样式,用于批注文字字体.
mxOcx.AddTextStyle2("MyCommentFont","黑体",0.7);
// 创建一个与用户交互取点的对象。
var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getPt.message = "输入标注插入基点";
// 开始取第一个点。
if (getPt.go() != 1)
return;
// 创建一个与用户交互取点的对象。
var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getSecondPt.message = "输入标注位置点";
getSecondPt.basePoint = getPt.value();
getSecondPt.setUseBasePt(false);
spDrawData = getSecondPt.InitUserDraw("DrawComment2");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", getPt.value());
spDrawData.SetString("Text", txt);
spDrawData.SetDouble("TextHeight", 100);
spDrawData.SetLong("EdgeNumber", 0);
spDrawData.SetDouble("ShapRadius", 300);
// 开始取第二个点。
if (getSecondPt.go() != 1)
return;
var ret = spDrawData.Draw();
// 设置绘制的批注文字样式。
for (var i = 0; i < ret.Count; i++)
{
var ent = ret.AtObject(i);
ent.TextStyle = "MyCommentFont";
ent.colorIndex = 4;
}
}
最新文章
- ITTC数据挖掘系统(六)批量任务,数据查看器和自由文档
- Orcle常用语句
- SQL触发器中的deleted表和inserted表
- Swift 必备开发库 (高级篇)
- 1.C#中几个简单的内置Attribute
- centos如何安装软件
- Java学习第三篇:类的三大特征,抽象类,接口,final关键字
- jqGrid简单介绍
- Ubuntu下安装Wine&;WineQQ+Phpstorm+wps+svn+vim(计划任的使用)+flashplayer+curl扩展
- QT学习 之 文本文件读写
- Android与javascript中事件分发机制的简单比较
- 百度地图API显示多个标注点带百度样式信息检索窗口的代码
- Oracle day04 DML_事务_序列_视图_数据类型_DDL
- Android 屏幕适配插件 ScreenMatch
- 「luogu1417」烹调方案
- python 管道 事件(Event) 信号量 进程池(map/同步/异步)回调函数
- iOS:苹果内购实践
- stark组件base.html
- Installing Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 in Silent Mode
- Solr7.2的安装与使用
热门文章
- UVaLive 3971 Assemble (水题二分+贪心)
- Eclipse 安装Maven插件
- liteos任务(二)
- Qt中csv文件的导入与导出
- BAT或赌在当下或押在未来,谁是王者?
- android studio ffmpeg简单使用 (cmake)
- Java | 基础归纳 | 随机数应用
- 三维BFS Poj 2251
- 洛谷P3177||bzoj4033 [HAOI2015]树上染色
- CentOS Linux 搭建 SVN(CollabNet Subversion)服务器