以梦为马,不负韶华

搜索
查看: 1047|回复: 14
收起左侧

网页CAD开发快速入门

[复制链接]
 楼主| 发表于 2023-2-10 10:55:50 显示全部楼层 |阅读模式



演示说明
提示:目前提供两种在网页中浏览编辑CAD图纸方案,详细说明见:https://help.mxdraw.com/?pid=46

网页中打开CAD最简步骤:
第一步: 安装插件运行环境,下载安装(可能需要退杀毒软件):https://demo.mxdraw3d.com:3562/MxDrawx86Setup.exe
第二步: 运行用ie,或安装指定Chrome内核浏览器: 下载:https://demo.mxdraw3d.com:3562/sogou_explorer_11.0.1_0722.exe
第三步:打开下面连接,在线查看CAD
梦想CAD网页版在线演示例子1: https://demo.mxdraw3d.com:3562/iedemo.html梦想CAD网页版在线演示例子2: 点击此处在线演示
梦想CAD网页版最简代码例子3: https://demo.mxdraw3d.com:3562/testchrome.htm
梦想CAD网页版最简Vue代码例子4: https://demo.mxdraw3d.com:3562/my-vue.7z
国产浏览器如果不能加载,选择兼容模式,如下图:

                               
登录/注册后可看大图
在网页中使用Html + JavaScript调用控件,浏览和编辑CAD图纸,后台服务器使用Asp、php、java等语言都可以开发,服务器可以是windows、linux系统,,支持IE所有版本、QQ、360、谷歌等浏览器,极速模式也支持。
我们提供的是CAB安装包,在IE中自动下载安装。

如果需要Chrome加CAD控件,需要指定Chrome安装包,建使用下面的浏览器安装,使用极速模式加载。下载地址:

视频演示



在网页中引用控件
从我们网站首页下载 最新安装包,安装包大概有150M,是个rar自解压文件,里面包括了所有帮助文件、和所有语言调用的运行例子,最终用户使用发布包只有16M。界面如下:

                               
登录/注册后可看大图
下载CAD控件开发包,下载成功后安装文件如下:

                               
登录/注册后可看大图
下载的文件是一个压缩文件,双击解压之后,以管理员身份运行“ RegMxDrawX.bat  ”注册CAD控件到系统中,如果注册失败请退出360等杀毒软件,再运行RegMxDrawX.bat。界面如下:

                               
登录/注册后可看大图
控件注册成功后,会弹出注册成功弹框。界面如下:

                               
登录/注册后可看大图
控件是个ocx,Id为 74A777F8-7A8F-4e7c-AF47-7074828086E2  
Html中引用控件需要添加代码如下:
  1. <SCRIPT language="JavaScript">
  2.     document.oncontextmenu = new Function('event.returnValue=false;'); //禁用右键
  3. function LoadMxDrawX(id,dwgfile,cabpath,msipath) {
  4.     var s, classid, Sys = {}, ua = navigator.userAgent.toLowerCase();
  5.     (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/trident\/([\d.]+)/)) ? Sys.ie9 = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0,
  6.     classid = "74A777F8-7A8F-4e7c-AF47-7074828086E2",

  7.     Sys.ie || Sys.ie9 ? (document.write("<!-- 用来产生编辑状态的ActiveX控件的JS脚本-->   "),
  8.     document.write("<!-- 因为微软的ActiveX新机制,需要一个外部引入的js-->   "),
  9.     document.write('<object id="'+ id + '" classid="clsid:' + classid + '" '),
  10.    //document.write('width="85%" height="85%" align="left">   '),
  11.     document.write('codebase=" ' + cabpath + 'width="85%" height="85%" align="left">   '),
  12.     document.write('<param name="_Version" value="65536">  '),
  13.     document.write('<param name="_ExtentX" value="24262">  '),
  14.     document.write('<param name="_ExtentY" value="16219">  '),
  15.     document.write('<param name="_StockProps" value="0">'),
  16.     document.write('<param name="DwgFilePath" value="' + dwgfile + '" > '),
  17.     document.write('<param name="IsRuningAtIE" value="1">'),
  18.     document.write('<param name="EnablePrintCmd" value="1">  '),
  19.     document.write('<param name="ShowCommandWindow" value="1">   '),
  20.     document.write('<param name="ShowToolBars" value="1">  '),
  21.     document.write('<param name="ShowModelBar" value="1">'),
  22.     document.write('<param name="Iniset" value="">  '),
  23.     document.write('<param name="ToolBarFiles" value="">'),
  24.     document.write('<param name="ShowMenuBar" value="1">'),
  25.     document.write('<param name="EnableUndo" value="1">'),
  26.     document.write('<param name="ShowPropertyWindow" value="1">'),
  27.     document.write('<SPAN STYLE="color:red">不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置。请点击<a href=' + msipath + '>安装控件</a></SPAN>'),
  28.     document.write('</object>')) :

  29.     Sys.chrome ? (document.write('<object id="' + id + '" clsid="{' + classid + '}" '),
  30.     document.write('type="application/mxdraw-activex" width="85%" height="85%" align="left"> '),
  31.     document.write('<param name="_Version" value="65536">  '),
  32.     document.write('<param name="_ExtentX" value="24262">  '),
  33.     document.write('<param name="_ExtentY" value="16219">  '),
  34.     document.write('<param name="_StockProps" value="0">'),
  35.     document.write('<param name="DwgFilePath" value="' + dwgfile + '" > '),
  36.     document.write('<param name="IsRuningAtIE" value="1">'),
  37.     document.write('<param name="EnablePrintCmd" value="1">  '),
  38.     document.write('<param name="ShowCommandWindow" value="1">   '),
  39.     document.write('<param name="ShowToolBars" value="1">  '),
  40.     document.write('<param name="ShowModelBar" value="1">'),
  41.     document.write('<param name="Iniset" value="">  '),
  42.     document.write('<param name="ToolBarFiles" value="">'),
  43.     document.write('<param name="ShowMenuBar" value="1">'),
  44.     document.write('<param name="EnableUndo" value="1">'),
  45.     document.write('<param name="ShowPropertyWindow" value="1">'),
  46.     document.write('<param name="Event_ImplementCommandEvent" value="DoCommandEventFunc">'),
  47.     document.write('<SPAN STYLE="color:red">不能装载文档控件,谷歌浏览器使用,下载MxChrome安装包到本地,安装后点击桌面 Chrome企业版 快捷方式启动。请点击<a href=' + msipath + '>安装控件</a></SPAN>'),
  48.     document.write('</object>')) :

  49.     Sys.firefox ? (document.write("<!-- 需要安装ieTab插件才能使用-->   "),
  50.     document.write("<!-- 右键弹出菜单,点击使用ieTab浏览> -->  "),
  51.    
  52.     document.write('<div class="no_title">  不能装载文档控件。1.请在安装ieTab插件,2.然后请点击<a href=' + msipath + '>安装控件</a>, 3.然后右键弹出菜单,点击使用ieTab浏览 </div> ')

  53.     ) :
  54.     Sys.opera ? alert("sorry,ntko 暂时不支持opera!") :
  55.     Sys.safari && alert("sorry,ntko 暂时不支持safari!");
  56. }


  57. function isFireFox()
  58. {
  59.     var s, classid, Sys = {}, ua = navigator.userAgent.toLowerCase();
  60.     (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/trident\/([\d.]+)/)) ? Sys.ie9 = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

  61.     return  Sys.firefox;

  62. }
  63. </SCRIPT>
复制代码

使用参考例子 samples\ie  引用CAD控件添加代码如下:
  1. <script type="text/javascript">    LoadMxDrawX("MxDrawXCtrl", "", "http://www.mxdraw.com/MxDrawX52.CAB#version=8.0.0.1", "https://download.mxdraw3d.com:2083/MxChromex86Setup.exe");</script>
  2. <script>
复制代码

标记中各个部分的含义如下:
id=" MxDrawXCtrl "标识控件的JavaScript编程标识,通过document.all("MxDrawXCtrl ")即可得到对控件对象的引用。
clsid:  
74A777F8-7A8F-4e7c-AF47-7074828086E2  标识控件的唯一标识。浏览器通过这个clsid来判断访问网页的客户机是否已经安装控件。

codebase="https://demo.mxdraw3d.com:3562/MxDrawX52.CAB#version=4.0.0.1"

在网页上自动安装CAB包,https://demo.mxdraw3d.com:3562/MxDrawX52.CAB是CAB包在服务器上的位置。version=4.0.0.1是控件版本号,如果这个版本号取的比文件属性中版本号低,则不会在ie中自动下载提示更新安装,如果比文件属性中的版本号高,则会总是提示更新安装。
这个版本号可以查看 mxdrawx.ocx  文件的属性得到,最新版已经升级到version=9.0.0.1,界面如下:

                               
登录/注册后可看大图
参考例子目录:
src\MxDraw5.2\sample\ie
src\MxDraw5.2\sample\ie\iedemoTest.htm
src\MxDraw5.2\sample\JavaScript




Asp.net调用控件
“参考例子” sample\AspNet\AspNet.sln ”,演示了网页调用控件、打开图纸、保存图纸到服务器、参数化绘图、交互绘图等功能。运行效果如下:

                               
登录/注册后可看大图



打开服务器上的dwg文件
1.1 修改服务器设置,支持dwg文件下载
打开IIS的设置界面,在网站上面点击右键,弹出菜单,选择“ 属性 ”菜单命令。弹出网站设置界面,点击“HTTP头  ”的Tab选项。界面如下:

                               
登录/注册后可看大图
点击“ 文件类型 ”按钮,弹出设置界面,增加一个新的dwg文件类型,点击确定。界面如下:

                               
登录/注册后可看大图
新版本IIS设置设置,支持dwg文件下载
运行ISS管理器点击网站对象,点击 Default Web Site  ,界面如下:

                               
登录/注册后可看大图
点击“ MIME类型  ”按钮,界面如下:

                               
登录/注册后可看大图
点击右边界面中的“ 添加  ”按钮,添加文件扩展名为.dwg,界面如下:

                               
登录/注册后可看大图
点击“ 确定”后,列表中出现如下字符则表示添加成功,界面如下:

                               
登录/注册后可看大图
1.2 DwgFilePath
控件自动打开DWG文件的属性,在控件的属性窗口中设置该值为dwg文件的路径,控件打开时自动打开dwg文件,网页调用代码:
  1. <param name="DwgFilePath" value="https://download.mxdraw3d.com:2083/test.dwg" >
复制代码
在网中调用时该变量支持相对路径。 相对服务器路径:  DwgFilePath=~/my.dwg ,相对当前网页路径 DwgFilePath=./my.dwg  。该变量支持ftp路径 DwgFilePath=ftp://192.168.1.133/11.dwg 。支持assic字符串的十六进制编码,用"<>"扩起来的路径,控件就认为这是十六进制编码 如:传 <2E2F33343234332E647767>表示传 ./34243.dwg。
1.3 OpenWebDwgFile
调用这个函数,直接打开网上的DWG ,DXF, DWF文件。网络路径如:https://demo.mxdraw3d.com:3562/test.dwg
支持assic字符串的十六进制编码,用"<>"扩起来的路径,控件就认为这是十六进制编码 如可以传 <2E2F33343234332E647767>表示传 ./34243.dwg。在网页中,需要等到控件初始化完成后,才能调用该函数打开dwg文件。
在网页增加控件初始化完成函数如下:

  1. //初始化
  2. function InitMxDrawX() {
  3. var mxOcx = document.getElementById("MxDrawXCtrl");
  4.     if (mxOcx) {
  5.         if (!mxOcx.IsIniting())
  6.         {
  7.             clearInterval(mxtime);
  8.             // 控件初始化完成,需要在启动做的事,在这里做
  9.             // 启动时打开文件
  10.             mxOcx.OpenWebDwgFile("https://download.mxdraw3d.com:2083/test.dwg");
  11.            
  12.         }
  13.     }
  14. }
  15. mxtime = setInterval(InitMxDrawX, 100);
复制代码

















保存dwg到服务器
控件支持在网页中绘图,编辑dwg文件,并把修改后的dwg文件保存到服务器。
SaveDwgToURL
该函数模拟一个文件表单提交,上传文件,在服务器端有个专门的程序来处理文件的上传。
COM接口:
  1. VARIANT_BOOL SaveDwgToURL(  
  2. BSTR pszServerUrl,             //服务器网址地址,如:www.mxdraw.com,如果传空,程序自动取当前网
  3. //页的服务器.
  4. BSTR pszServerProgramUrl,    //服务器的文件上传处理程序,如:upload.asp
  5. BSTR pszComponentName,     //HTML组件名称,相当于一个HTML页面的Form中的中的file1
  6. BSTR pszPort);                  //服务处理端口. 如:_T("80")
复制代码

详细例程参考  sample/AspNet 中"保存dwg文件到服务器"按钮,向服务器发送的上传文件请求,使用 Fiddler 工具能看见上传数据包, 因为Fiddler的问题, Fiddler工具查看本地服务器请求内容时,本地服务器ip地址需要写成http://127.0.0.1,而不能写成  http://localhost 。

如下代码调用:
  1. if (!mxOcx.SaveDwgToURL("http://127.0.0.1.", "/Save.aspx", "ComponentName", "6046")) {
  2.        // 得到服务器返回错误
  3.         var ret = MxDrawXCtrl_Obj.Call("Mx_GetLastError","");
  4.         alert(ret.AtString(0));
  5.     }
  6.     else {
  7.         alert("成功");
  8. }
复制代码

上面代码相当于如下Html代码的调用:
  1. <form action="Save.aspx"method="post" enctype="multipart/form-data">
  2.     <input id="File1" type="file" name="ComponentName" /><br />
  3.     <input id="Submit1" type="submit" value="submit" />
  4. </form>
复制代码

服务器上,接收上传文件并保存的代码,Asp.net:
  1. namespace AspNet
  2. {
  3.     public partial class Save : System.Web.UI.Page
  4.     {
  5.         protected void Page_Load(object sender, EventArgs e)
  6.         {
  7.             System.Web.HttpFileCollection uploadFiles = Request.Files;
  8.             System.Web.HttpPostedFile theFile;
  9.             if (uploadFiles.Count == 0)
  10.             {
  11.                 Response.Write("Save failed!!!");
  12.                 return;
  13.             }
  14.             else
  15.             {
  16.                 try
  17.                 {
  18.                     int i = 0;
  19.                     for (; i < uploadFiles.Count; )
  20.                     {
  21.                         theFile = uploadFiles[i];

  22.                         // uploadFiles.GetKey(0)对应着
  23.                         // SaveDwgToURL(getcurpath(), "/Save.aspx", "test.dwg","");中的Test.Dwg
  24.                         theFile.SaveAs(Server.MapPath(uploadFiles.GetKey(0)) );
  25.                         Response.Write("Save OK!");
  26.                         i++;
  27.                         return;
  28.                     }
  29.                 }
  30.                 finally
  31.                 {
  32.                     
  33.                 }
  34.             }

  35.             Response.Write("Save failed!!!");
  36.          
  37.         }
  38.     }
  39. }
复制代码

例如 ASP.net + MVC调用:
  1. var dwgName = $("#dwgList option:selected").text();
  2.             var hostName = window.location.hostname;
  3.             var port = window.location.port;
  4.             var path = "http://" + hostName + ":" + port;
  5.             alert(hostName+"==="+path);
  6.             if (!mxOcx.SaveDwgToURL(path, "Home/SaveDwgFile/?key=" + Math.random() + "&flag=" + flag, dwgName, ""))
  7.             {
  8.                 alert(path);
  9.                 var ret = mxOcx.Call("Mx_GetLastError", "");
  10.                 alert(ret.AtString(1));
  11.             }
  12.             else
  13.             {
  14.                 //alert("保存成功");
  15.             }
复制代码

服务器上,接收上传文件并保存的代码Servlet:

  1. MxForm mf = (MxForm)actionForm;
  2.         InputStream is = mf.getFile().getInputStream();
  3.         File destFile = new File("D:\civilize\code\web","test.dwg");
  4.         OutputStream os = new FileOutputStream( destFile );
  5.         byte[] buffer = new byte[400];
  6.         int length = 0;
  7.          while( (length = is.read(buffer)) > 0 ) {
  8.             os.write(buffer,0,length);
  9.         }
  10.         mf.getFile().destroy();
  11.         is.close();
  12.         os.close();
  13.         return null;
  14.         // MxForm代码:
  15.         import org.apache.struts.action.ActionForm;
  16.         import org.apache.struts.upload.FormFile;

  17.         public class MxForm extends ActionForm {
  18.             private FormFile file;
  19.         public FormFile getFile() {
  20.                 return file;
  21.             }
  22.             public void setFile(FormFile file) {
  23.             this.file = file;
  24.             }
  25.         }
复制代码




























设置服务器上目录权限
控件中的ASP例程,上传保存的文件放在updata目录下,在服务器上必须设置其写权限,才能保存成功。设置步骤如下:
1.打我的“电脑窗口”,点击“ 工具 ”->“ 文件夹选项 ”,弹出文件夹选项窗口。
2.勾选“ 使用共享向导”选项,界面如下:

                               
登录/注册后可看大图



网页交互绘直线
放入一个绘直线按钮:
  1. <input type="button" value="绘制直线" onclick="myclick()">
复制代码

Myclick函数代码:所有与用户交互的函数,需要在控件的命令事件中调用,具体原因参考文档“ 梦想控件19-命令执行原理.doc ”
  1. function myclick()
  2. {   
  3. //  下面的DoCommand(1)调用程序将跳到DoCommandEventFunc(iCmd)执行
  4.     document.getElementById("MxDrawXCtrl").DoCommand(1);
  5. }
  6. 定义一个控件命令执行函数:
  7. function DoCommandEventFunc(iCmd)
  8. {
  9.      if (iCmd == 1)
  10.      {
  11.         // 绘直线代码
  12.         var mxOcx = document.all.item("MxDrawXCtrl");
  13.         mxOcx.focus();
  14.         // 与用户交互,在图上点取一个点
  15.                 var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
  16.                 if(point1 == null)
  17.                 {
  18.                       return;
  19.                 }
  20.                
  21.                 // 与用户交互,在图上点取第二点
  22.                 var point2 = mxOcx.GetPoint(true,point1.x,point1.y,"\n 点取结束点:");
  23.                 if(point1 == null)
  24.                 {
  25.                       return;
  26.                 }
  27.         // 开始画直线的,返回id
  28.         var lineId = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y);
  29.       }
  30. }
复制代码

设置命令执行函数到控件属性如下:
  1. document.getElementById("MxDrawXCtrl").ImplementCommandEventFun =
  2. DoCommandEventFunc;
复制代码

例子完整代码如下:
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312;no-cache">
  4. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
  5. <meta name="ProgId" content="FrontPage.Editor.Document">
  6. <title>MxDraw控件</title>
  7. </head>
  8. <body topmargin="0" leftmargin="0">
  9. <p>
  10. <input type="button" value="绘制直线" onclick="myclick()">
  11. </p>
  12. <p align="center">

  13.    <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%>
  14.              <param name="_Version" value="65536">
  15.              <param name="_ExtentX" value="24262">
  16.              <param name="_ExtentY" value="16219">
  17.              <param name="_StockProps" value="0">
  18.             <param name="IsRuningAtIE" value="1">
  19.             <param name="EnablePrintCmd" value="1">
  20.             <param name="ShowStatusBar" value="1">
  21.             <param name="ShowMenuBar" value="1">
  22.             <param name="ShowToolBars"  value="1">
  23.             <param name="ShowCommandWindow" value="1">
  24.             <param name="ShowModelBar" value="1">
  25.             <param name="Iniset" value="AutoActive=N,LoadMrx=PropertyEditor">
  26.         <param name="ToolBarFiles" value="MxDraw-ToolBar.mxt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">
  27. <SPAN STYLE="color:red">不能装载CAD控件。请确认你可以连接网络或者检查浏览器的选项中安全设置。<a href="http://www.mxdraw.com/MxDrawX52.msi">http://www.mxdraw.com/MxDrawX52.msi 安载CAD控件</a></SPAN>
  28.   </object>
  29. <script>
  30. function myclick()
  31. {
  32.         
  33.         //  下面的DoCommand(1)调用程序将跳到DoCommandEventFunc(iCmd)执行
  34.         document.getElementById("MxDrawXCtrl").DoCommand(1);
  35. }
  36. function DoCommandEventFunc(iCmd)
  37. {
  38.             if (iCmd == 1)
  39.             {
  40.                 var mxOcx = document.all.item("MxDrawXCtrl");
  41.                        mxOcx.focus();
  42.                 var point1 = mxOcx.GetPoint(false,0,0,"\n 点取开始点:");
  43.                 if(point1 == null)
  44.                 {
  45.                             return;
  46.                 }
  47.                 var point2 = mxOcx.GetPoint(true,point1.x,point1.y,"\n 点取结束点:");
  48.                 if(point1 == null)
  49.                 {
  50.                             return;
  51.                 }
  52.                 // 直线的id
  53.                 var lineId = mxOcx.DrawLine(point1.x,point1.y,point2.x,point2.y);

  54.                 // 为新写的直线写一个字符串扩展数据
  55.                 var database = mxOcx.GetDatabase();
  56.                 var ent = database.ObjectIdToObject(lineId);                             
  57.         }   
  58. }
  59. document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;
  60. </script>
  61. </p>
  62. </html>
复制代码


chrome浏览器运行控件
CAD控件是ocx插件,但最新谷歌浏览器已经不再支持NPAPI插件,好在谷歌浏览器是开源项目,我们修改了它的源码,并让它支持我们的ocx插件,我们把修改过的谷歌浏览器取名为“Chrome企业版”。
下载谷歌浏览器32位企业版:https://demo.mxdraw3d.com:3562/MxChromex86Setup.exe
也建议使用国产浏览的极速模式加载我们CAD控件,效果也不错
下载支持CAD插件的搜狗浏览:https://demo.mxdraw3d.com:3562/sogou_explorer_11.0.1_0722.exe
运行效果如下:

                               
登录/注册后可看大图



安装程序会自动安装运行控件需要的所有环境,该安装包可以直接发给最终用户使用,也不需要再单独安装chrome浏览器。
安装后,运行桌面快捷方式"Chrome企业版"
.

                               
登录/注册后可看大图

chrome浏览器使用控件效果:

                               
登录/注册后可看大图


发表于 2023-2-10 10:55:50 显示全部楼层
不错,谢谢你的分享
[发帖际遇]: qyf 成功获得红包 8 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层

这个帖子不回对不起自己!我想我是一天也不能离开马后炮化工
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层
技术很方便,费用是怎么样的

点评

想了解的话+q:1298095305  详情 回复 发表于 2023-2-15 10:49
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层
网页版的厉害了
[发帖际遇]: lxqlcz135636 乐于助人,帮助不愿意过马路的老奶奶过马路,奖励 3 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层
学习了 谢谢分享
[发帖际遇]: yangyingyyz 乐于助人,帮助不愿意过马路的老奶奶过马路,奖励 2 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层
很好的技术,但使用上有点复杂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-10 10:55:50 显示全部楼层
reichina 发表于 2023-2-11 12:31
技术很方便,费用是怎么样的

想了解的话+q:1298095305
[发帖际遇]: lihao2014 乐于助人,帮助不愿意过马路的老奶奶过马路,奖励 10 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层

感谢楼主的无私分享
[发帖际遇]: whng 成功加入五毛党,回帖一个奖励 5 个 韶华币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2023-2-10 10:55:50 显示全部楼层
谢谢楼主分享!
[发帖际遇]: wxch99219 发帖时在路边捡到 5 个 韶华币,偷偷放进了口袋. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-6 23:07

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表