BDYCAD
发表于 2003-11-10 09:48:00
這樣也行.. 有待改善.
subtlation
发表于 2003-11-10 11:01:00
我试改了一下程序,可以解决刚才我提的那个退出时会自动卸载原来菜单的问题。以下是修改部分。请大家指教。
Sub mainmenu()
On Error Resume Next
Dim newmenu As AcadPopupMenu
Dim newmenugroup As AcadMenuGroup
Dim newmenuitemname As AcadPopupMenuItem
Set newmenugroup = ThisDrawing.Application.MenuGroups.Item(0)
Set newmenu = newmenugroup.Menus.Add("坡度标注")
If Err Then
Err.Clear
n = Application.MenuGroups.Item(0).Menus.Count + 1
Application.MenuGroups.Item(0).Menus.InsertMenuInMenuBar "坡度标注", n
Exit Sub
End If
Set newmenuitemname = newmenu.AddMenuItem(newmenu.Count + 0, "相对X轴坡度", "-vbarun pd ")
Set newmenuitemname = newmenu.AddMenuItem(newmenu.Count + 1, "相对指定直线坡度", "-vbarun rj ")
Set newmenuitemname = newmenu.AddMenuItem(newmenu.Count + 2, "退出坡度标注程序", "-vbarun u2 ")
newmenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
End Sub
Sub u2()
'ThisDrawing.SendCommand "filedia 0 "
'ThisDrawing.SendCommand "menu " + Chr(13)
'ThisDrawing.SendCommand "filedia 1 "
On Error Resume Next
Application.MenuGroups.Item(0).Menus("坡度标注").RemoveFromMenuBar
End Sub
subtlation
发表于 2003-11-10 11:04:00
其中子程序u2就是把("坡度标注")直接从显示中删除,但菜单中没有删除。所以在MAINMENU中需要加一个错误捕捉--如果不能增加菜单项("坡度标注"),说明("坡度标注")已经存在,直接让("坡度标注")显示就行了。
gzy
发表于 2003-11-10 11:32:00
不起作用啊,一样也是把以前加载的菜单都卸掉了。
我的其实也没有把程序真正从ACAD中卸载,但是点击退出后用户就在界面中用不了了。
另外我觉得可以逐条删除,但可能会有点麻烦。所以也没有试过。
subtlation
发表于 2003-11-10 11:36:00
我这里试过,可以的。也许是我刚才没有保存就上传文件了,再穿一次试试。
gzy
发表于 2003-11-10 11:44:00
呵呵 ,真的不行啊。我也看了你的程序,似乎是这样,但结果却是这样。
退出显示如下
subtlation
发表于 2003-11-10 12:13:00
我也不明白为什么会这样。
我的cad中自己做的菜单都是直接在自己的mns文件中编辑,不是用程序写的。
也许是这个原因,相同的代码在我们的cad中运行结果却不一样。
希望哪位高手能帮忙说明一下。
mccad
发表于 2003-11-10 18:52:00
程序可能需要做些改进:
标注坡度的精度和字体大小最好取当前标注样式中的大小及精度,然后再由用户重新设置,设置好的大小及精度最好能够在下次调用该程序时显示出来,而不用自己设置。这样可以节省用户设置的时间。
gzy
发表于 2003-11-12 13:49:00
经老大指点,特上传最新版,呵呵。
老大:设置好的大小及精度最好能够在下次调用该程序时显示出来,而不用自己设置//
这是什么意思啊?
2002-ytf
发表于 2003-11-14 22:13:00
即执行程序时显示当前大小和精度,并作为default