凯得吧[CAD8.Net]

 找回密码
 注册会员

QQ登录

只需一步,快速开始

尊敬的会员:如您的密码仅为数字等简单密码,为帐号安全,请务必修改! 新会员请验证邮箱!升级后可发主题贴!
分享内容请勿对会员进行二次引导,附件有密码请务必在贴内说明,或使用本站默认密码:www.cad8.net
本站所有资料为会员上传仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
查看: 45|回复: 0
收起左侧

CAD网页交互绘直线

[复制链接]
发表于 2019-8-7 11:23:38 | 显示全部楼层 |阅读模式 简体中文繁體中文
用QQ等截图工具截图后,点中发贴区直接按Ctrl+V键就可以将截图粘贴到发贴框.

欢迎加入,注册成为会员,享用更多功能,完全免费。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
放入一个绘直线按钮:

<input type="button" value="绘制直线" onclick="myclick()">

Myclick函数代码:所有与用户交互的函数,需要在控件的命令事件中调用,具体原因参考文档“ 梦想控件19-命令执行原理.doc ”

function myclick()
{   
//  下面的DoCommand(1)调用程序将跳到DoCommandEventFunc(iCmd)执行
    document.getElementById("MxDrawXCtrl").DoCommand(1);
}
定义一个控件命令执行函数:
function DoCommandEventFunc(iCmd)
{
     if (iCmd == 1)
     {
        // 绘直线代码
        var mxOcx = document.all.item("MxDrawXCtrl");
        mxOcx.focus();
        // 与用户交互,在图上点取一个点
                var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
                if(point1 == null)
                {
                      return;
                }
               
                // 与用户交互,在图上点取第二点
                var point2 = mxOcx.GetPoint(true,point1.x,point1.y,"\n 点取结束点:");
                if(point1 == null)
                {
                      return;
                }
        // 开始画直线的,返回id
        var lineId = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y);
      }
}

设置命令执行函数到控件属性如下:

document.getElementById("MxDrawXCtrl").ImplementCommandEventFun =
DoCommandEventFunc;

例子完整代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312;no-cache">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>MxDraw控件</title>
</head>
<body topmargin="0" leftmargin="0">
<p>
<input type="button" value="绘制直线" onclick="myclick()">
</p>
<p align="center">

   <object classid="clsid:74A777F8-7A8F-4e7c-AF47-7074828086E2" id="MxDrawXCtrl"  codebase="http://www.mxdraw.com/MxDrawX52.CAB#version=7.0.0.1" width=100% height=90%>
             <param name="_Version" value="65536">
             <param name="_ExtentX" value="24262">
             <param name="_ExtentY" value="16219">
             <param name="_StockProps" value="0">
            <param name="IsRuningAtIE" value="1">
            <param name="EnablePrintCmd" value="1">
            <param name="ShowStatusBar" value="1">
            <param name="ShowMenuBar" value="1">
            <param name="ShowToolBars"  value="1">
            <param name="ShowCommandWindow" value="1">
            <param name="ShowModelBar" value="1">
            <param name="Iniset" value="AutoActive=N,LoadMrx=PropertyEditor">
        <param name="ToolBarFiles" value="MxDraw-ToolBar.mxt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">
<SPAN STYLE="color:red">不能装载CAD控件。请确认你可以连接网络或者检查浏览器的选项中安全设置。<a >http://www.mxdraw.com/MxDrawX52.msi 安载CAD控件</a></SPAN>
  </object>
<script>
function myclick()
{
        
        //  下面的DoCommand(1)调用程序将跳到DoCommandEventFunc(iCmd)执行
        document.getElementById("MxDrawXCtrl").DoCommand(1);
}
function DoCommandEventFunc(iCmd)
{
            if (iCmd == 1)
            {
                var mxOcx = document.all.item("MxDrawXCtrl");
                       mxOcx.focus();
                var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
                if(point1 == null)
                {
                            return;
                }
                var point2 = mxOcx.GetPoint(true,point1.x,point1.y,"\n 点取结束点:");
                if(point1 == null)
                {
                            return;
                }
                // 直线的id
                var lineId = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y);

                // 为新写的直线写一个字符串扩展数据
                var database = mxOcx.GetDatabase();
                var ent = database.ObjectIdToObject(lineId);                             
        }   
}
document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;
</script>
</p>
</html>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

本站所有资料仅供大家学习之用,商用请务必购买正版版权!有侵权之处,请联系管理员(QQ:119891935)删除!
快速回复 返回顶部 返回列表