乐筑天下

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

[原创]请教:DotNetARX+C# 方面问题?

[复制链接]
xhl

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2010-4-15 10:38:00 | 显示全部楼层 |阅读模式
新手请教各位大侠一个问题:
最近我用DotNetARX+C#做了一dll,好像只能通过netload加载这个dll,有没有其他方法做成一个类似于EXE的应用程序,双击它直接启动CAD,同时加载dll动态库?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-15 14:18:00 | 显示全部楼层
可以通过注册表加载,而且可以实现更灵活的加载方式
回复

使用道具 举报

xhl

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2010-4-15 15:25:00 | 显示全部楼层
楼上的朋友,能详细讲解一下注册表方法吗?非常谢谢!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-15 15:53:00 | 显示全部楼层

3楼
回复

使用道具 举报

xhl

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2010-4-15 21:50:00 | 显示全部楼层
版主:
     你好,按照你的指示,自动加载dll可以了。还有一个问题没弄明白,就是我这个dll里面有一个菜单栏创建命令,想在加载dll时执行加载菜单栏命令,可以实现吗?怎样实现?非常感谢你的不吝赐教!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-15 22:06:00 | 显示全部楼层
上面的帖子一楼
回复

使用道具 举报

xhl

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2010-4-16 10:47:00 | 显示全部楼层
版主在吗? 我还是没实现启动CAD时自动加菜单功能,我的代码如下,麻烦你帮我看下谢谢:
using System;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using DNA;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.Windows;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
namespace CsMgd1
{
    ///
    /// Summary for Class1.
    ///
    public class Class1 : IExtensionApplication
    {
        public Class1()
        {
            AddMenuCom();
        }
        public void Initialize()
        {
            try
            {
                //cls.AddMenuCom();
            }
            catch (System.Exception ex)
            {
                ed.WriteMessage("Error: " + ex.Message);
            }
        }
        public void Terminate() { }
        Database db = HostApplicationServices.WorkingDatabase;
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
        [CommandMethod("Test")]
        public void Test()
        {
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                trans.Commit();
                //Tools.RunCommand(false, "circle", "5,5", Tools.PauseToken, "line", "5,5", "7,5", "");
            }
        }
        [CommandMethod("AM")]
        public static void AddMenuCom()
        {
            AcadApplication app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.17");
            AcadMenuBar menuBar = app.MenuBar;
            AcadMenuGroup menuGroup = app.MenuGroups.Item(0);
            AcadPopupMenus menus = menuGroup.Menus;
            AcadPopupMenu mymenu = menus.Add("MyMenu");
            mymenu.AddMenuItem(0, "Hello", "hello");
            mymenu.AddSeparator(1);
            mymenu.AddMenuItem(2, "Hello2", "hello");
            AcadPopupMenu ext = mymenu.AddSubMenu(3, "Ext");
            ext.AddMenuItem(0, "Hello", "hello");
            ext.AddSeparator(1);
            ext.AddMenuItem(2, "Hello2", "hello");
            mymenu.InsertInMenuBar(menuBar.Count - 2);
        }
    }
}
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-16 18:17:00 | 显示全部楼层
        public void Initialize()
        {
            try
            {
            AcadApplication app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.17");
            AcadMenuBar menuBar = app.MenuBar;
            AcadMenuGroup menuGroup = app.MenuGroups.Item(0);
            AcadPopupMenus menus = menuGroup.Menus;
            AcadPopupMenu mymenu = menus.Add("MyMenu");
            mymenu.AddMenuItem(0, "Hello", "hello");
            mymenu.AddSeparator(1);
            mymenu.AddMenuItem(2, "Hello2", "hello");
            AcadPopupMenu ext = mymenu.AddSubMenu(3, "Ext");
            ext.AddMenuItem(0, "Hello", "hello");
            ext.AddSeparator(1);
            ext.AddMenuItem(2, "Hello2", "hello");
            mymenu.InsertInMenuBar(menuBar.Count - 2);
            }
            catch (System.Exception ex)
            {
                ed.WriteMessage("Error: " + ex.Message);
            }
        }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-16 18:19:00 | 显示全部楼层
另外,我的建议
菜单、工具条之类的最好用加载cui文件实现,不需编程的
回复

使用道具 举报

1

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
8
发表于 2010-4-21 22:13:00 | 显示全部楼层
function XML() {
    [native code]
}
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-28 23:05 , Processed in 2.636400 second(s), 73 queries .

© 2020-2025 乐筑天下

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