明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1513|回复: 0

[求助]动态右键菜单,在CAD2004下可以用,但2006下不行

[复制链接]
发表于 2009-3-31 15:03:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-4-5 22:24:58 编辑

引用http://hi.baidu.com/xshrimp/blog/item/f6f2b2512394751d377abe19.html
帮忙指点一下,谢谢
;by  xshrimp 2007.1.5;(setq str (gps->popupmenu '("Line" "" "Circle" "Arc")))(DEFUN
  gps->popupmenu  (MENULST  /  acadobj  currmenugroup  flag  fn  menus  n  newmenu  newmenuitem
  openmacro  str  thisdoc  )
  (SETVAR  "cmdecho"  0)
  (SETQ  FLAG  nil)
  (SETQ  FN  (OPEN  "VbaMenu.mns"  "w"))
  (CLOSE  FN)
  (SETQ  ACADOBJ  (vlax-get-acad-object))
  (SETQ  THISDOC  (vla-get-ActiveDocument  ACADOBJ))
  (SETQ  MENUS  (vla-get-MenuGroups  ACADOBJ));  (VLAX-FOR N MENUS (IF (= (vla-get-Name N) "VbaMenu");        (SETQ FLAG T);      ) (TERPRI);  );  (IF FLAG;    (UnLoadMenuGroup "VbaMenu");  )
  (UnLoadMenuGroup  "VbaMenu")
  (vla-Load  MENUS  "VbaMenu.mns")
  (SETQ  CURRMENUGROUP  (vla-Item  MENUS  "VbaMenu"))
  (IF  (<=  (vla-get-Count  (vla-get-Menus  CURRMENUGROUP))  0)
    (PROGN      (SETQ  NEWMENU  (vla-Add  (vla-get-Menus  CURRMENUGROUP)
  "V&BA Menu"))
      (FOREACH  N  MENULST (IF  (=  (TYPE  N) (QUOTE  STR))   (COND     ((/=
  N
  "")
       (SETQ
  OPENMACRO
  (STRCAT
  (CHR
  3)
  (CHR
  3)
  "(setq xxx "
  N
  ")"
          (CHR
  32)
         )
      NEWMENUITEM
  (vla-AddMenuItem
  NEWMENU
  (1+
            (vla-get-Count
  NEWMENU)
        )
  N
  OPENMACRO
    )
       )
       (vla-put-HelpString
  NEWMENUITEM
  N)
     )
     ((=
  N
  "")
       (vla-AddSeparator
  NEWMENU
  (1+
  (vla-get-Count
  NEWMENU)))
     )
   )
)
      )
      (vla-Save
  CURRMENUGROUP
  acMenuFileCompiled)
    )
    (PRINC
  "\nThe menu is already loaded")
  )  
  (PRIN1)  
  (MENUCMD
  "p0=VbaMenu.POP2")
  (MENUCMD
  "p0=*")  
)(defun
  UnLoadMenuGroup
  (iValue
  /
  rValue)
  (if
  (menugroup
  iValue)  
   (progn
     (if
  (not
  (vl-catch-all-error-p
    (setq
  rValue
      (vl-catch-all-apply
      'vla-unload
      (list
        (vla-item
  (vla-get-menugroups(vlax-get-acad-object))
  iValue)
      )
      )
    )
  )
  )
  (setq
  rValue
  T)
  )rValue
   )
  )
  

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-12-19 04:23 , Processed in 0.162426 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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