- 积分
- 7534
- 明经币
- 个
- 注册时间
- 2012-8-28
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 言戲無軍 于 2018-8-26 07:08 编辑
本程序用于发布已开发的CAD lsp程序,将你的lsp或vlx fas放到文件夹下,
或者通过inno setup安装后运行文件夹下apploader就能选择加载程序,后期再次运行可卸载
win10 win8 win7 64位系统都需要管理员权限运行
1.二次开发程序很多用秋风的打包程序,但是不开源,有秋枫的印记,很不爽,不便于发布专业的程序。
2.还有通过拖动lsp到CAD窗口加载的,在win10下有些不能拖动加载,而且太不专业。
3.还有一些用的CAD werx(已倒闭)的inst.exe程序,不支持64位系统。
4.用innosetup脚本直接在安装时候选择CAD加载,如果不想加载某个CAD,得重新安装程序,麻烦。
经过多年的开发探索,终于找到比较齐全的方案,本方案支持64位及32位系统以及CAD,便于发布,便于定制自己的自动加载程序。
此程序分别用了C# .net和VB进行开发,容易修改深化。
此方案的最大好处是便于结合innosetup发布程序 ,安装结束【run】字段运行此程序加载
在不同的CAD,后期想更换CAD再次运行程序可卸载更换,不用重新安装。
最重要的是完全开源,想怎么改怎么改。
关于inno setup发布CAD二次开发程序 百度即可。
VB源码已公布在本论坛 VB及VBA区。
程序完善后将公布所有源码,许多代码借用了网络资源,在此表示感谢。
目前已知有一个问题,就是首次打开CAD,会自动加载2次lsp,找不到解决办法,求大神改改。
C# net源码
- namespace LspLoad._17
- {
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.Windows;
- //using DotNetARX;
- // using Autodesk.AutoCAD.Interop;
- //using Autodesk.AutoCAD.Interop.Common;
- using System;
- using System.Text;
- //using System.Drawing;
- using System.IO;
- using System.Runtime.InteropServices;
- // using System.Windows.Forms;
- using System.Diagnostics;
- public class ExtApp : IExtensionApplication
- {
-
- [System.Security.SuppressUnmanagedCodeSecurity]
- [DllImport("acad.exe", CharSet = CharSet.Auto,CallingConvention = CallingConvention.Cdecl)]
- extern static private int ads_queueexpr(string strExpr);
-
- public void AppLoad(string ex)
- {
- Document mdiActiveDocument = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
- Editor editor = mdiActiveDocument.Editor;
- // AcadApplication app = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
-
- //Application.ShowAlertDialog(ThisNetProperty.Path_LispLocation.ToString());
- if (Directory.Exists(ThisNetProperty.Path_LispLocation))
- {
-
- try
- {
- string[] files = Directory.GetFiles(ThisNetProperty.Path_LispLocation, ex,SearchOption.TopDirectoryOnly);
-
- foreach (string str in files)
- {
- editor.WriteMessage(str);
- //editor.Command("(vl-load-all" + ("\"" + str.Replace(@"\", "/") + "\"") + ")");
- ads_queueexpr("(vl-load-all" + ("\"" + str.Replace(@"\", "/") + "\"") + ")(princ)\n");
- //Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute("(vl-load-all" + ("\"" + str.Replace(@"\", "/") + "\"") + ")\n", true, false, true);
- // app.ActiveDocument.SendCommand("(vl-load-all" + ("\"" + str.Replace(@"\", "/") + "\"") + ")\n");
- // app.ActiveDocument.SendCommand("(vl-load-all" + ("\"" + str.Replace(@"\", "/") + "\"") + ")\n");
-
- }
- }
- catch (Autodesk.AutoCAD.Runtime.Exception exception)
- {
- Application.ShowAlertDialog(exception.ToString());
- }
- }
-
- }
-
-
-
- private void DocumentManager_DocumentCreated(object sender, DocumentCollectionEventArgs e)
- {
- // AppLoad("*.lsp");
- //Application.DocumentManager.DocumentCreated -= new DocumentCollectionEventHandler(DocumentManager_DocumentCreated);
- }
- public void Initialize()
- {
- Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(Autodesk.AutoCAD.ApplicationServices.Application.Version.ToString());
- ThisNetProperty.LoadPath();
- // Application.DocumentManager.DocumentCreated += new DocumentCollectionEventHandler(DocumentManager_DocumentCreated);
- //this.LoadEvents();
- //Editor editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
- // Application.SetSystemVariable("cmdecho", 0);
- // DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();
- AppLoad("*.lsp");
- AppLoad("*.vlx");
- AppLoad("*.fas");
- }
-
-
- public void LoadEvents()
- {
- }
-
-
- public void Terminate()
- {
- }
- }
- }
apploader 源码
有人不知道如何在lsp里面添加支持路径及菜单,引用下秋枫、夜未眠的自动加载lsp,自己修改下,就行了,程序里定义了一个lsp函数
(get_apppath)用于获取 apploader所在路径。
秋枫及夜未眠源码加载菜单及支持路径:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|