QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 4061|回复: 11
收起左侧

[已答复] 菜单上的宏命令

[复制链接]
发表于 2007-6-1 20:53:35 | 显示全部楼层 |阅读模式 来自: 中国福建福州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我在MDT下用VBA作了个菜单,现在想靠点击其上的子菜单# r! t2 `. C) W7 C. M
能弹出一个我用VBA做的对话框,怎么实现?& n7 }3 i( P. o$ V+ T* t" o# n
请各位帮帮忙!!
发表于 2007-6-1 21:01:46 | 显示全部楼层 来自: 中国上海
编译成fas文件 加载到acad.lsp# E% h/ P" Z, A! L4 G, g
一级菜单是fas文件 二级是vlx文件
 楼主| 发表于 2007-6-1 21:13:17 | 显示全部楼层 来自: 中国福建福州
楼上的大哥,
1 S5 L) q" W+ B8 i1 g( v* U/ Q能不能把过程讲具体点,我.........
发表于 2007-6-1 21:19:45 | 显示全部楼层 来自: 中国浙江宁波
定义菜单时,直接写宏代码就可以了。
6 j1 u% u! C% o! g  ~) r; _" I例如,菜单项为[对话框调用]^C^C_-VbaRun 对话框.dvb!ViewDialog, E! x6 _. @+ d
注意要先加载vba程序文件(对话框.dvb),ViewDialog是定义的调用对话框的sub。
发表于 2007-6-1 21:37:00 | 显示全部楼层 来自: 中国浙江宁波
如果菜单项也是通过程序创建的话,道理也相同。
; T+ j* }; {. A6 T( Bdim mnuGroup as acadmenugroup
4 c% p; e( P# [& T2 Iset mnuGroup=thisdrawing.menugroups.item(0)+ d+ @9 m% O7 w+ x! e6 v
dim newMenu as acadpopumenu
+ x: ^4 J: L8 B4 u6 I  e' G0 oset newnenu=mnugroup.menus.add("TestMenu")" Y" Y7 s1 {; q# X* G
dim newMenuItem as AcadPopupMenuItem
! o( C, X; R9 o  j. Hdim MacroStr as string
: Y  `) X' {; _$ G1 aMacroStr=chr(3)+chr(3)+chr(95)+"此处为调用对话框的sub名"+chr(32)& R4 o% C6 H7 p; E; V& w
set newMenuItem=newmenu.addmenuitem(newmenu.count+1,"Test",Macrostr)( h& y6 T  N) B% w0 [+ G% A7 C$ J
newmenu.insertinmenubar(thisdrawing.menubar.count+1)

评分

参与人数 1三维币 +5 收起 理由
★新手★ + 5 技术讨论

查看全部评分

 楼主| 发表于 2007-6-1 21:42:58 | 显示全部楼层 来自: 中国福建福州
以下是我的菜单编码:
6 T; V8 ~+ K4 N0 wSub gMenu()
8 J( M5 W" F$ K6 yDim currMenuGroup As AcadMenuGroup
+ H1 x$ F6 d- \Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)9 k/ J6 r9 w6 P
Dim newMenu As AcadPopupMenu
$ i6 x, E: {' mSet newMenu = currMenuGroup.Menus.Add("零部件")" }, |  x1 L' a9 U6 @9 `
Dim newMenuItem As AcadPopupMenuItem
% ?' F3 w4 f+ P6 ]1 H8 h' N8 [Dim Gear As String7 ?# ~3 S. n+ s7 V; d+ j( k
Gear = Chr(3) + Chr(3) + Chr(95) + "齿轮" + Chr(32)( o1 u* e4 ]/ H7 H
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "齿轮", Gear). X3 o# f& x. x7 Q. a
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
5 X1 g9 Z' l, C$ QEnd Sub
6 H+ p3 H' p* c" r
0 x5 p2 a+ H* Z8 n4 T: d+ L2 ]3 h% K' |9 M! j3 R4 Q. K! j
下图是当我点击菜单“零部件”下的“齿轮”时能弹出的对话框,怎么实现?
c.JPG
 楼主| 发表于 2007-6-1 21:49:55 | 显示全部楼层 来自: 中国福建福州
4楼的老大,能不能留下你的QQ或者电话什么的??
; t' O1 Z$ d* B% [% I/ W# Y  z我还有一些问题想向您请教!!
发表于 2007-6-1 23:38:30 | 显示全部楼层 来自: 中国
Gear = Chr(3) + Chr(3) + Chr(95) + "齿轮" + Chr(32)
* Q0 Z) i8 x$ K1 z+ }% B% n5 x) e' r& Z3 Q0 U, a
这一句改成
6 q0 a4 W0 l5 w) H# ^Gear = "-VBARUN" & Chr(13) + "齿轮" + Chr(32)+ z0 Q  X( _+ ?
再写一段3 C" C# p3 y- K& ?, a7 L
Sub 齿轮()0 k7 y5 A7 O* n% g! [0 `- W' z
'打开用户窗体3 ~, ?) c( G- E4 F
End Sub
7 o; C: H' i, A. i5 _& o4 L
* Q4 u% n: r$ x6 L6 _+ z( D6 x试试吧
发表于 2007-6-2 08:21:53 | 显示全部楼层 来自: 中国浙江宁波
按8楼说的试试,你首先要加载了你的DVB文件,然后在宏中调用显示对话框的sub,你没有给string变量Gear赋值,怎么能实现?你最好结合lisp注册一个CAD命令,那么在宏中只需要写命令的名称就可以了。
 楼主| 发表于 2007-6-2 09:47:31 | 显示全部楼层 来自: 中国福建福州
Sub 齿轮()
& [* @; n1 f) m& v/ Q' `'打开用户窗体( G4 z4 X: Q: R
End Sub- Y9 f: V/ B0 W6 P. R

" r) B  y5 [) J; H/ C
8 g: g$ ~1 E" L2 i' L8 R8 I
7 O% }9 a: K: ^/ w4 I4 Y, X% H这一段怎么实现??
发表于 2007-6-2 10:05:32 | 显示全部楼层 来自: 中国浙江宁波
加入代码 userform1.show6 U. h9 d" E' E- Z' r- Z  _, {1 p
就可以了,把你的代码贴上来看看。
1 Q' V2 U; Q* R# ]+ O& h! v
9 E! H; m0 C2 W' O" r9 K! s9 Q$ U6 Z[ 本帖最后由 sealive_leafage 于 2007-6-2 10:08 编辑 ]
 楼主| 发表于 2007-6-2 11:10:45 | 显示全部楼层 来自: 中国福建福州

回复 #11 sealive_leafage 的帖子

我的代码?菜单代码在6楼,
( B7 w3 e2 V+ j' K0 f( Q+ u6楼上的图是我在VBA中用各个控件做的对话框还没有添加代码/ D' H1 H, p( g
我是想先看看能不能实现点击后弹出这个对话框( C2 g3 ]$ ^2 O- V- @
谢谢楼上的帮忙!!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表