前言:
今天朋友们对“pythonautocad开发”可能比较珍视,各位老铁们都需要了解一些“pythonautocad开发”的相关内容。那么小编也在网摘上收集了一些对于“pythonautocad开发””的相关知识,希望咱们能喜欢,小伙伴们一起来学习一下吧!现在学习VS2017 C# CAD2014,开始C# CAD二次开发第一步!!
(此处已添加书籍卡片,请到头条号平台查看)
编辑
添加图片注释,不超过 140 字(可选)
1.exp1 => Class1.cs 代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.Colors;namespace exp1{ public class cSum { public void Sum() {//System.Windows.Forms.messagebox.show("Hello World From VS C#(It's for Degbugging)","提示"); long s = 0; for (int i = 1; i <= 101; i++) { s += i; } System.Windows.Forms.MessageBox.Show(s.ToString(), "提示"); } }}
这个是使用cmd.json的文件的类,修改cmd.json文件的内容不必要重新编译类文件!
2.loadx => Class1.cs 代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.Colors;using System.Reflection;using System.IO;using Newtonsoft.Json;using Newtonsoft.Json.Linq;namespace Loadx{ public class loadx { private Action cmd; [CommandMethod("DD")] public void Reloadx() { #region CmdSum CmdInfo cmdInfo = new CmdInfo(); string jsonFile = @"E:\VS\exp1\cmd.json"; using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile)) { using (JsonTextReader reader = new JsonTextReader(file)) { JObject o = (JObject)JToken.ReadFrom(reader); cmdInfo.DllName = o["DllName"].ToString(); cmdInfo.ClassName = o["ClassName"].ToString(); cmdInfo.MethodName = o["MethodName"].ToString(); } } string DllName = cmdInfo.DllName; string ClassName = cmdInfo.ClassName; string MethodName = cmdInfo.MethodName; //string DllName = "exp1.dll"; //string ClassName = "exp1.cSum"; //string MethodName = "Sum"; #endregion #region Don't var adapterfileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location); var targetFilePath = Path.Combine(adapterfileInfo.DirectoryName, DllName); var targetAssembly = Assembly.Load(File.ReadAllBytes(targetFilePath)); var targetType = targetAssembly.GetType(ClassName); var targetMethod = targetType.GetMethod(MethodName); var targetObject = Activator.CreateInstance(targetType); cmd = () => targetMethod.Invoke(targetObject, null); try { cmd?.Invoke(); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Tips1"); }; #endregion } } public class CmdInfo { public string DllName { get; set; } public string ClassName { get; set; } public string MethodName { get; set; } }}
3.cmd.json 代码如下:
编辑
添加图片注释,不超过 140 字(可选)
{"DllName":"exp1.dll","ClassName":"exp1.cSum","MethodName":"Sum"}
这个类是不用cmd.json文件的类!
4.loadx => Class2.cs 代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.Colors;using System.Reflection;using System.IO;using Newtonsoft.Json;using Newtonsoft.Json.Linq;namespace Loadx{ public class loadx1 { private Action cmd1; [CommandMethod("DD1")] public void Reloadx() { #region CmdSum string DllName = "exp1.dll"; string ClassName = "exp1.cSum"; string MethodName = "Sum"; #endregion #region Don't var adapterfileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location); var targetFilePath = Path.Combine(adapterfileInfo.DirectoryName, DllName); var targetAssembly = Assembly.Load(File.ReadAllBytes(targetFilePath)); var targetType = targetAssembly.GetType(ClassName); var targetMethod = targetType.GetMethod(MethodName); var targetObject = Activator.CreateInstance(targetType); cmd1 = () => targetMethod.Invoke(targetObject, null); try { cmd1?.Invoke(); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Tips1"); }; #endregion } } public class CmdInfo1 { public string DllName { get; set; } public string ClassName { get; set; } public string MethodName { get; set; } }}
效果:
打开CAD2014,在命令行输入:netload命令回车!选择如图中的动态链接库文件!
编辑切换为居中
添加图片注释,不超过 140 字(可选)
输入命令:DD命令回车!
编辑
添加图片注释,不超过 140 字(可选)
提示:.exp1 => Class1.cs
修改后只要重新编译exp1即可,不用重新关闭重启CAD。
如果要修改启动的类,可以直接修改cmd.json文件对应的项即可。
这里再做一点补充!每次都要使用netload加载动态链接库文件也挺烦的。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
在系统命令行输入regedit,打开注册表编辑器,在对应的键值中添加如图所示的项。
在CAD的选项中添加如下的受信任位置:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
启动时就不会再提示如下所示的警告!!!
编辑
添加图片注释,不超过 140 字(可选)
通过上面的处理后,只要打开CAD,就可以使用自己开发的命令了。
标签: #pythonautocad开发 #vs2017使用方法实例 #vs2017怎么运行c语言代码 #vs2017怎么运行 #vs2017怎样运行程序代码