乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 88|回复: 5

C#如何加载lsp、Vlx,fas,arx等插件?

[复制链接]

7

主题

24

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2020-11-13 10:04:00 | 显示全部楼层 |阅读模式
想做个管理,特来咨询C#加载lsp、Vlx,fas,arx等插件的方法,希望大神提供案例或源码参考,谢谢~
回复

使用道具 举报

1

主题

17

帖子

3

银币

初来乍到

Rank: 1

铜币
21
发表于 2020-11-24 13:45:00 | 显示全部楼层
cad自带的appload不好吗?
回复

使用道具 举报

7

主题

24

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2020-11-29 20:41:00 | 显示全部楼层

不好~~添加到启动组有时也会丢失~
回复

使用道具 举报

21

主题

149

帖子

11

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
231
发表于 2021-1-11 18:34:00 | 显示全部楼层

在cad安装目录Support文件夹内acad2020.lsp(对应你自己的cad版本)加入(Load "xxxx.lsp")。
同时把你的 xxxx.lsp 文件放到Support文件夹内。arx、vlx、fas也一样。
dll自动加载,acad2020.lsp内添加:
(command "netload" "D:\\Program Files\\Autodesk\\AutoCAD 2020\\Support\\ xxxx.dll")
对应你dll的路径,注意路径是双斜杠
比如:
(Load "A.lsp")
(Load "B.arx")
(Load "C.vlx")
(Load "D.fas")
(command "netload" "D:\\Program Files\\Autodesk\\AutoCAD 2020\\Support\\ E.dll")
回复

使用道具 举报

7

主题

24

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
52
发表于 2021-1-11 23:49:00 | 显示全部楼层

这个方法是可行的,我其实想知道用注册表如何操作
回复

使用道具 举报

0

主题

21

帖子

6

银币

初来乍到

Rank: 1

铜币
21
发表于 2021-1-25 14:10:00 | 显示全部楼层
public partial class CSendSynchronization
    {
#if AC2006 || AC2007 || AC2008 || AC2009 || AC20081 || AC2011 || AC2012
        ///  
        /// 发送命令
        ///
        ///
        ///     
        [DllImport("acad.exe", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl, EntryPoint = "ads_queueexpr")]
        private static extern int Ads_queueexpr(string strExpr);//非同步,这个在08/12发送lisp不会出错,但是发送bo命令出错了..
        ///
        /// 发送命令,设置CommandFlags.Session可以同步,
        /// 发送lisp也可以,但是非同步,在自动执行函数上面会非同步
        ///
        ///
        public static void SendString(string str)
        {
            try
            {
                Ads_queueexpr(str + "\n");
            }
            catch (Exception ee)
            {
                //自执行发送lisp都是在最后的(异步执行)   
                var ed = Acap.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage(Environment.NewLine + "发送命令失败,导致加载失败!");
                ed.WriteMessage(Environment.NewLine + "" + ee.Message + Environment.NewLine);
            }
        }
#else
        ///
        /// 发送命令
        ///  
        /// 发送lisp加载命令
        ///
        public static void SendString(string str)
        {
            Document dc = Acap.DocumentManager.MdiActiveDocument;
            string commands = str + "\n";
            try
            {
                dc.SendStringToExecute(commands, false, false, false);//08所有都flase会有问题,出现报错
            }
            catch (System.Exception ee)
            {
                //自执行发送lisp都是在最后的(异步执行)   
                var ed = dc.Editor;
                ed.WriteMessage(ee.Message);
                ed.WriteMessage(Environment.NewLine + "发送命令失败,导致加载失败!");
                ed.WriteMessage(Environment.NewLine + ee.Message);
            }
        }
#endif
    }
调用时候 SendString($"(load \"{fe}\")");
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 02:03 , Processed in 0.192461 second(s), 64 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表