找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1587|回复: 19

[求助] [求助]:承蒙xyp1964、狂刀、Underway几位老师的指点,但还是解决不了,请大家再帮帮

[复制链接]
发表于 2005-11-11 15:56:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
C:\gongchengliang\Lsp\gcljs.mnu代码如下:
***MENUGROUP=GcGroup
***POP12
**GcMenu
[Gcljs(&G)]
[面积及长度(&A)...        Ctrl+A]^C^C_AL


C:\gongchengliang\Lsp\gcljs.lsp代码如下:
;;;取得选择集中所有对象的面积及长度
(defun C:AL ()
  (setvar "cmdecho" 0)
  (setq Scale (getreal "\nScale<1>:"))
  (if (= Scale nil)
      (setq Scale 1)
  )
  (setq o_name (ssget))
  (setq o_Coun (sslength o_name))
  (setq III 0)
  (setq MianJi "")
  (setq ChangD "")
  (while (< III o_Coun)
    (setq nextobj (ssname o_name III))
    (command "area" "o" nextobj)
    (setq sm (rtos (/ (* (getvar "area") Scale) 1000000) 2 3))
    (setq Le (rtos (/ (* (getvar "perimeter") Scale) 1000) 2 2))
    (setq MianJi (strcat MianJi sm "+"))
    (setq ChangD (STRCAT ChangD Le "+"))
    (setq III (+ III 1))
  )
  (setq MianJi (substr MianJi 1 (- (strlen MianJi) 1)))
  (setq ChangD (substr ChangD 1 (- (strlen ChangD) 1)))
  (setq Str (strcat MianJi "㎡" ChangD "m"))
  (princ Str)
)


请问怎样实现启动CAD时自动加载gcljs.lsp及自动把gcljs.mnu文件中的“Gcljs”菜单加到CAD中“帮助”菜单之后并显示?

我已查了CAD帮助及其他参考书,但均不得要领,请各位老师帮帮忙,帮我弄一个完整的程序。谢谢!

我用的是CAD2004。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8157个

财富等级: 富甲天下

发表于 2005-11-11 16:45:13 | 显示全部楼层
[Gcljs(&G)]
[面积及长度(&A)... Ctrl+A]^C^C_AL


C:\gongchengliang\Lsp\gcljs.lsp代码如下:
;;;取得选择集中所有对象的面积及长度
(defun C:AL ()    .....)

===>
[Gcljs(&G)]
[面积及长度(&A)... Ctrl+A]^C^C(C:AL)
or
[面积及长度(&A)... Ctrl+A]^C^CAL
or
[面积及长度(&A)... Ctrl+A]^C^C^P(if (not C:AL) (load "C:/gongchengliang/Lsp/gcljs"))(princ);AL;^P
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 16:53:31 | 显示全部楼层
1、可以用MENULOAD加载gcljs.mnu,加载成功后,以后都是自动加载。
2、把gcljs.lsp改为gcljs.mnl,并且和gcljs.mnu放在同一个文件夹中,该文件夹要在ACAD的搜索路径中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 17:06:48 | 显示全部楼层
在檔案放到搜尋路徑中,MENULOAD加载gcljs.mnu
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-11 17:12:55 | 显示全部楼层
首先感谢各位!但以上办法我都试过了,还是不行,非要在MenuLoad对话框里点“插入”按钮才能显示菜单,而下次启动CAD时还要重复该步骤。到底什么问题?请各位帮忙想想办法
    谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 17:44:08 | 显示全部楼层
最初由 bolixin 发布
[B]首先感谢各位!但以上办法我都试过了,还是不行,非要在MenuLoad对话框里点“插入”按钮才能显示菜单,而下次启动CAD时还要重复该步骤。到底什么问题?请各位帮忙想想办法
    谢谢! [/B]

把菜单文件发上来给你改好?!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-11 18:06:58 | 显示全部楼层
xyp1964兄:

所有文件均在一楼,麻烦你帮我想下办法,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 21:36:38 | 显示全部楼层
关于菜单定制和加载可以看看“定制”部分。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-11-11 21:45:58 | 显示全部楼层
嘿嘿,最根本的问题是在gcljs.mnl中需要加入下载的代码。

  1. ;;为了让代码结构更好,做成了函数,你也可以直接用里面的代码。
  2. (defun addmenu (/ n)
  3.   (if (menugroup "netbee")
  4.     (progn
  5.       (setq n 1)
  6.       (while (< n 24)
  7.         (if (menucmd (strcat "P" (itoa n) ".1=?"))
  8.           (setq n (+ n 1))
  9.           (progn
  10.             (if        (> n 3)
  11.               (setq n (- n 2))
  12.               (setq n 3)
  13.             )
  14.             ;;if
  15.             (menucmd (strcat "p" (itoa n) "=+netbee.pop1"));;这里为你定义的菜单名。按需修改呀!!^_^
  16.              ;;你这里为这一句(menucmd (strcat "p" (itoa n) "=+GcGroup.pop12"))
  17.             (setq n 25)
  18.           )
  19.           ;;progn
  20.         )
  21.         ;;if
  22.       )
  23.       ;;while
  24.     )
  25.     ;;progn
  26.   )
  27.   ;;if
  28.   (princ)
  29. )
  30. (addmenu);;运行函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 23:29:29 | 显示全部楼层
这 好 像 说 明 你 的 acad记 不 住 配 置, 说 明 配 置 文 件 无 法 存 盘  , 所 以 每 次 需 要 重 新 设 置
你 查 一 下 window的 权 限 使 用 , 估 计 那 里 出 问 题 了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-12 07:45:06 | 显示全部楼层
非常感谢各位!
netbee 斑竹 说的办法我也试过了,还是不行。
现在问题的关键是:
在CAD下可以用
(command "menuload" "C:\\gongchengliang\\Lsp\\Gcljs.mnu")
语句加载菜单,但无法用
(menucmd "p11=+GcGroup.pop12")
语句把该菜单加入到CAD原有菜单中并显示该菜单,非要在MenuLoad对话框里点“插入”按钮才能显示该菜单,这到底是怎么回事?怎么解决?请各位指教
再次感谢各位!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-11-12 08:07:40 | 显示全部楼层
试试将菜单中的 POP12 改为 POP1 ,MNL中对应修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-12 14:04:44 | 显示全部楼层
不行啊,各位请帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-12 14:42:48 | 显示全部楼层
加载gcljs.lsp,运行gclis
  1. [FONT=courier new];;;C:\gongchengliang\Lsp\gcljs.lsp代码如下:
  2. ;;;取得选择集中所有对象的面积及长度
  3. (defun C:AL (/ STR)
  4.   (setvar "cmdecho" 0)
  5.   (setq Scale (getreal "\nScale<1>:"))
  6.   (if (= Scale nil)
  7.     (setq Scale 1)
  8.   )
  9.   (setq        o_name (ssget '((0 . "CIRCLE,*POLYLINE,ARC,SPLINE")))
  10.         o_Coun (sslength o_name)
  11.         I      -1
  12.         MianJi ""
  13.         ChangD ""
  14.   )
  15.   (while (setq nextobj (ssname o_name (setq I (1+ I))))
  16.     (command "area" "o" nextobj)
  17.     (setq sm         (rtos (/ (* (getvar "area") Scale) 1000000) 2 3)
  18.           Le         (rtos (/ (* (getvar "perimeter") Scale) 1000) 2 2)
  19.           MianJi (strcat MianJi sm "+")
  20.           ChangD (STRCAT ChangD Le "+")
  21.     )
  22.   )
  23.   (setq        MianJi (substr MianJi 1 (- (strlen MianJi) 1))
  24.         ChangD (substr ChangD 1 (- (strlen ChangD) 1))
  25.         Str    (strcat MianJi "㎡" ChangD "m")
  26.   )
  27.   (princ Str)
  28.   (PRINC)
  29. )

  30. ;;;加载gcljs菜单
  31. (defun c:gcljs()
  32. (if  (not (menugroup "gcljs"))
  33.     (progn
  34.       (command ".undo" "c" "n" ".menuload" "gcljs" ".undo" "")
  35.       (menucmd "p11=GcGroup.pop1")
  36.     )
  37.   )
  38.   )
  39. (princ)[/FONT]

程序及菜单文件:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-12 15:46:19 | 显示全部楼层
xyp1964  斑竹:你好!
首先感谢你的帮忙!
现在我才发现实际上不是程序的问题,是我电脑本身的问题,你的程序我在其他电脑上试过了,运行正常,但在我的电脑上就不行,我也不知道是什么原因。
我的QQ是375278076,如果方便请加我。
再次感谢各位!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 19:08 , Processed in 0.397434 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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