MxDraw 发表于 2019-5-24 10:03

CAD控件网页版线型

增加线型主要用到函数说明:
_DMxDrawX::AddLinetype
增加一个线型定义。详细说明如下:
参数 说明
BSTR pszName 线型名
BSTR pszLineDefine 线定义字符串
用户可以增加线型到数据库,具体实现js代码如下:
//新建一个线型
function CreateLineType() {
    //定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。
    var linetypeId= mxOcx.AddLinetype("MyLineType3", "6,-10");
    //返回控件的数据库对象
    var database = mxOcx.GetDatabase();
    //实体id返回实体对象
    var linetype = database.ObjectIdToObject(linetypeId);
    //设计当前线型为"MyLineType"
    database.CurrentlyLineTypeName= "MyLineType3";
    alert("添加成功");
}用户可以增加一个点划线虚线线型到数据库,具体实现js代码如下:
function CreateLineType1() {
   
    var linetypeId= mxOcx.AddLinetype("MyLineType1", "10,-2,3,-2");
    //返回控件的数据库对象
    var database = mxOcx.GetDatabase();
    //实体id返回实体对象
    var linetype = database.ObjectIdToObject(linetypeId);
    //设计当前线型为"MyLineType1"
    database.CurrentlyLineTypeName= "MyLineType1";
    alert("添加成功");
}用户可以增加一个带有形的线型到数据库。
主要用到函数说明:
_DMxDrawX::AddTextStyle1
向数据库中增加一个文字样式。详细说明如下:
参数 说明
BSTR pszName 文字样式名称
BSTR pszFileName shx文件名
BSTR pszBigFontFileName big shx文件名
DOUBLE dXScale 文字宽度缩放比例
_DMxDrawX::AddLinetypeEx
增加一个带文字的复杂线型。详细说明如下:
参数 说明
BSTR pszName 线型名
BSTR pszLineDefine 线型定义字符串
BSTR pszTextStyle 线型中的文字样式
具体实现js代码如下:
function CreateLineType2() {
    //增加一个带有形的线型
    mxOcx.AddTextStyle1("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
    var linetypeId= mxOcx.AddLinetypeEx ("MyLineType2", "(12.7,(\"T=MxDraw\",\"S=2.54\",\"L=-5.08\",\"R=0.0\"," +
      "\"X=-2.54\",\"Y=-1.27\"),-10.08)","MyLineTypeTextStyle");
    //返回控件的数据库对象
    var database = mxOcx.GetDatabase();
    //实体id返回实体对象
    var linetype = database.ObjectIdToObject(linetypeId);
    //设计当前线型为"MyLineType2"
    database.CurrentlyLineTypeName= "MyLineType2";
    alert("添加成功");
}得到线型名用户可以得到所有线型名,具体实现js代码如下: function GetAllLineType() {
    var database = mxOcx.GetDatabase();
    // 得到所有图层名
    var sRet = null;
    //返回数据库中的线型表对象
    var spLinetypeStyleTable = database.GetLinetypeTable();
    //创建一个遍历所有线型的遍历器
    var spIter = spLinetypeStyleTable.NewIterator();
    //移动当前遍历器位置
    for(;!spIter.Done();spIter.Step(true,true))
    {
      //返回遍历器当前位置的记录
      var spLinetypeStyleTableRec = spIter.GetRecord();
      //符号表记录名属性
      var sName = spLinetypeStyleTableRec.Name;
      // 0零层不参加比较
      if(sName != "0")
      {
            if(sRet == null)
                sRet = sName;
            else
            {
                sRet = sRet +","+sName;
            }
      }
    }
    alert(sRet);
}删除线型用户可以得到删除某个线型,具体实现js代码如下:function DelLineType() {
    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;
    }
    var database = mxOcx.GetDatabase();
    //返回数据库中的线型表对象
    var LinetypeStyleTable = database.GetLinetypeTable();
    //得到线型表中的线型对象
    var LinetypeStyleRec = LinetypeStyleTable.GetAt(txt, false);
    if (LinetypeStyleRec == null)
      return;
    //删除对象
    LinetypeStyleRec.Erase();
    alert("成功删除线型");
    mxOcx.Regen();
}

页: [1]
查看完整版本: CAD控件网页版线型