乐筑天下

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

我的选项卡/功能区在Autocad中不永久显示

[复制链接]

14

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2021-8-28 13:46:44 | 显示全部楼层 |阅读模式
这个代码也运行,但在关闭autocad时出现问题,我的选项卡不是autocad中的永久选项卡必须每个打开的autocad运行TAB,面板和按钮
如何在Autocad中编辑永久选项卡,而无需每次打开运行此代码以使TAB
感谢关注
  1.         [CommandMethod("testmyRibbon")]
  2.         public void Testme()
  3.         {
  4.             RibbonControl ribbon = ComponentManager.Ribbon;
  5.             if (ribbon != null)
  6.             {
  7.                 RibbonTab rtab = ribbon.FindTab("TEST ME");
  8.                 if (rtab != null)
  9.                 {
  10.                     ribbon.Tabs.Remove(rtab);      
  11.                 }
  12.                 rtab = new RibbonTab();
  13.                 rtab.Title = "TEST  ME";
  14.                 rtab.Id = "Testing";
  15.                 //Add the Tab
  16.                 ribbon.Tabs.Add(rtab);
  17.                 addContent(rtab);
  18.             }
  19.         }
  20.         static void addContent(RibbonTab rtab)
  21.         {
  22.             rtab.Panels.Add(AddOnePanel());
  23.         }
  24.         static RibbonPanel AddOnePanel()
  25.         {
  26.             Document dwg = Application.DocumentManager.MdiActiveDocument;
  27.             RibbonButton rb;
  28.             RibbonPanelSource rps = new RibbonPanelSource();
  29.             rps.Title = "Test One";
  30.             RibbonPanel rp = new RibbonPanel();
  31.             rp.Source = rps;
  32.             //Create a Command Item that the Dialog Launcher can use,
  33.             // for this test it is just a place holder.
  34.             RibbonButton rci = new RibbonButton();
  35.             rci.Name = "TestCommand";
  36.             //assign the Command Item to the DialgLauncher which auto-enables
  37.             // the little button at the lower right of a Panel
  38.             rps.DialogLauncher = rci;
  39.             rb = new RibbonButton();
  40.             rb.Name = "Test Button";
  41.             rb.ShowText = true;
  42.             rb.ShowImage = true;
  43.             rb.Width = 250;
  44.             rb.Text = "Test Button";
  45.             rb.CommandHandler = new MyRibbonCommandHandler();
  46.             rb.CommandParameter = "CF";
  47.           //  dwg.SendStringToExecute((string)rb.CommandParameter + " ", true, false, true);
  48.             //Add the Button to the Tab
  49.             rps.Items.Add(rb);
  50.             return rp;
  51.         }
  52.    
  53.     }
  54.     internal class MyRibbonCommandHandler : System.Windows.Input.ICommand
  55.     {
  56.         public event EventHandler CanExecuteChanged;
  57.         public bool CanExecute(object parameter)
  58.         {
  59.             return true;
  60.         }
  61.         public void Execute(object parameter)
  62.         {
  63.             RibbonCommandItem btn = parameter as RibbonCommandItem;
  64.             if (btn != null)
  65.             {
  66.                 //execute an AutoCAD command, or your custom command defined by [CommandMethod]
  67.                 Document dwg = acApp.DocumentManager.MdiActiveDocument;
  68.                 dwg.SendStringToExecute((string)btn.CommandParameter + " ", true, false, true);
  69.             }
  70.         }
  71.     }


02xtj4le4hx.png

02xtj4le4hx.png


hjv13fuvu3o.png

hjv13fuvu3o.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2021-8-29 22:49:40 | 显示全部楼层
在主类实例化中,
公共类MyAppClass{
ribbonClass myribbon=新ribbonClass()//根据需要实例化ribbon类。
}
</div将应用程序加载到AutoCAD(netload)时,让该应用程序为您加载功能区
现在,如果要加载应用程序并在加载时使其运行,请更改该行为,以便在AutoCAD中注册根据需要执行程序的命令,但在加载时具有主类,并实例化功能区,以便在打开AutoCAD时始终可用
您可以通过在注册表中添加设置来自动加载应用程序:
打开注册表并浏览到相关的HKLM注册表项…
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R19.1\ACAD-D000:407\Applications\(这在您的安装中可能不同)
添加以下键和值:
LOADER(字符串)“path_to_your_dll”
说明(字符串)“应用程序说明”
LOADCTRLS(dword)0000000 E
托管(dword)0000000 1
执行此操作后,需要重新启动AutoCAD
在设置生效之前,您可能需要至少对DLL进行一次网络加载,或者它们可能会立即生效
还有其他方法可以做到这一点。有关自动加载.net程序集的详细信息,请参见:
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-autoload-DLLs-with-AutoCAD.html
这是一个很好的例子
回复

使用道具 举报

14

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2021-10-13 17:44:32 | 显示全部楼层
@keith谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 00:59 , Processed in 0.217328 second(s), 72 queries .

© 2020-2025 乐筑天下

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