QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4193|回复: 11
收起左侧

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

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

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

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

x
我在MDT下用VBA作了个菜单,现在想靠点击其上的子菜单8 R3 t" I( R! r; u. [  q$ K
能弹出一个我用VBA做的对话框,怎么实现?/ {. @5 w) N; x  C
请各位帮帮忙!!
发表于 2007-6-1 21:01:46 | 显示全部楼层 来自: 中国上海
编译成fas文件 加载到acad.lsp
2 c: e& L/ ?( g一级菜单是fas文件 二级是vlx文件
 楼主| 发表于 2007-6-1 21:13:17 | 显示全部楼层 来自: 中国福建福州
楼上的大哥,- _8 p0 ~: q0 E, G* W+ D
能不能把过程讲具体点,我.........
发表于 2007-6-1 21:19:45 | 显示全部楼层 来自: 中国浙江宁波
定义菜单时,直接写宏代码就可以了。4 d. o  t/ b! S6 L& R" K
例如,菜单项为[对话框调用]^C^C_-VbaRun 对话框.dvb!ViewDialog* \, s2 b7 }- A0 g$ r: K
注意要先加载vba程序文件(对话框.dvb),ViewDialog是定义的调用对话框的sub。
发表于 2007-6-1 21:37:00 | 显示全部楼层 来自: 中国浙江宁波
如果菜单项也是通过程序创建的话,道理也相同。9 A% B, \" l: ~0 `: \9 ^
dim mnuGroup as acadmenugroup  M0 V- c' q  a1 }4 s
set mnuGroup=thisdrawing.menugroups.item(0)) u) l+ o: {/ H% U9 E
dim newMenu as acadpopumenu9 o. s4 G' H; d9 J
set newnenu=mnugroup.menus.add("TestMenu")
& H/ H( u( @, q! fdim newMenuItem as AcadPopupMenuItem
6 H$ e) ?1 P' }1 [' `- C6 Adim MacroStr as string
' P0 `+ ?: i, u2 v1 v. AMacroStr=chr(3)+chr(3)+chr(95)+"此处为调用对话框的sub名"+chr(32)$ X& {8 |9 m. A9 G0 V$ C/ v7 A" C+ `# i
set newMenuItem=newmenu.addmenuitem(newmenu.count+1,"Test",Macrostr)
* i# c( c$ X+ f" p) W2 c" k0 J' Y' Snewmenu.insertinmenubar(thisdrawing.menubar.count+1)

评分

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

查看全部评分

 楼主| 发表于 2007-6-1 21:42:58 | 显示全部楼层 来自: 中国福建福州
以下是我的菜单编码:
- X: N. ~! R' wSub gMenu()
* B: t  Q+ T' v0 \0 U$ ^Dim currMenuGroup As AcadMenuGroup
8 b" W5 @8 d) p# qSet currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
2 R7 m6 h& F8 \! e3 c* d" G; B. d6 bDim newMenu As AcadPopupMenu( q) M- O2 |" S7 v
Set newMenu = currMenuGroup.Menus.Add("零部件")& u; l8 V, c* D+ c) ~1 o4 R
Dim newMenuItem As AcadPopupMenuItem4 B  n* e% W9 s1 @  p  y
Dim Gear As String% Z; J( M1 t/ M
Gear = Chr(3) + Chr(3) + Chr(95) + "齿轮" + Chr(32)1 Y4 i, k/ m3 g
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, "齿轮", Gear): h4 S% d6 }/ H- ?* H
newMenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)! ]* T' Z3 j" x; |/ b- `
End Sub
: X7 O8 B; M: k6 J$ }+ o
: C  L; G$ L/ o) V+ n" P. N& T) ?! a8 O4 V
  V: m$ [% t) a% l. @' {2 U下图是当我点击菜单“零部件”下的“齿轮”时能弹出的对话框,怎么实现?
c.JPG
 楼主| 发表于 2007-6-1 21:49:55 | 显示全部楼层 来自: 中国福建福州
4楼的老大,能不能留下你的QQ或者电话什么的??/ q/ e; A& I; U" C  |
我还有一些问题想向您请教!!
发表于 2007-6-1 23:38:30 | 显示全部楼层 来自: 中国
Gear = Chr(3) + Chr(3) + Chr(95) + "齿轮" + Chr(32)% P4 F: B: e& _* l, T
9 ?2 L4 X& D) H! ^: O
这一句改成- N% S8 `3 c# ~; }* F& M: r
Gear = "-VBARUN" & Chr(13) + "齿轮" + Chr(32)
9 y9 ^$ n; K4 r再写一段3 B- M' ~" v: Q: O+ C. i3 }+ O
Sub 齿轮()
2 d3 r4 D0 o& y  J( w0 m'打开用户窗体
+ I& t* {+ p7 a) |End Sub1 R+ o) X7 [8 E9 N
9 T  Z: o3 _6 V6 I7 S. b
试试吧
发表于 2007-6-2 08:21:53 | 显示全部楼层 来自: 中国浙江宁波
按8楼说的试试,你首先要加载了你的DVB文件,然后在宏中调用显示对话框的sub,你没有给string变量Gear赋值,怎么能实现?你最好结合lisp注册一个CAD命令,那么在宏中只需要写命令的名称就可以了。
 楼主| 发表于 2007-6-2 09:47:31 | 显示全部楼层 来自: 中国福建福州
Sub 齿轮()
6 j8 L! F  f" h* V, c0 o% M'打开用户窗体( U( p8 J- g4 l7 S5 ?
End Sub9 u6 s; c$ h- P( p9 n

7 s# a6 {1 o0 W5 i8 z" u9 H4 ~& \: e% R) S
% M/ L7 n& r4 h+ v7 @- E  `! m
这一段怎么实现??
发表于 2007-6-2 10:05:32 | 显示全部楼层 来自: 中国浙江宁波
加入代码 userform1.show) l" g# j$ q* w. W+ |# f
就可以了,把你的代码贴上来看看。% C; H# d9 f& H! n+ g. p
/ b7 x( j* ~- p9 R
[ 本帖最后由 sealive_leafage 于 2007-6-2 10:08 编辑 ]
 楼主| 发表于 2007-6-2 11:10:45 | 显示全部楼层 来自: 中国福建福州

回复 #11 sealive_leafage 的帖子

我的代码?菜单代码在6楼,
( ~, @2 e' p& Z  t6楼上的图是我在VBA中用各个控件做的对话框还没有添加代码# L0 i* u7 V: X+ J: {3 I
我是想先看看能不能实现点击后弹出这个对话框
' x9 x  }' u+ l: j, f/ F谢谢楼上的帮忙!!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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