找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8215|回复: 37

在ACAD2007中为自已的LISP程序定制菜单和工具栏按钮(模板式操作,在200X版中均适用)

[复制链接]
发表于 2006-9-5 15:53:43 | 显示全部楼层 |阅读模式

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

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

×
  附件里提供一个精巧的LSP文件(“起点、端点、弧长”方式画圆弧功能)和相应的菜单、工具栏按钮自定义资源,可以用来作为模板使用,自定义菜单(工具栏)的方式不再难了。

  模板式自定义操作思想概要:以上传的附件为模板,首先替换其中的LSP程序和图标按钮文件,然后对应修改自定义文件中的菜单(工具栏)自定义项,最后应用该设置。

  如果你有一个LSP程序,为了方便使用,要为它添加一个工具栏按钮,可以如下进行模板式定制:

一、准备所需的资源。
1、为了方便,把你的LISP程序重命名,以其执行的某个命令名为该LISP程序名。比如,在本例中的LSP程序,其执行时的命令为ARCL,所以把它命名为“ARCL.LSP"。现假定你的LISP执行的命令为XXX,程序名称相应改为XXX.LSP

2、建立一个文件夹,与LSP程序名称同名,把XXX.LSP剪切到这个XXX文件夹。

3、找一个BMP格式的图片文件作为你的按钮,把它复制两个放到XXX文件夹,并分别命名为XXX16.BMP,XXX24.BMP

4、把本例中的ARCL.MNU和ARCL。MNL文件复制到XXX文件夹,并用记事本打开分别进行修改,每个文件里有给出对应修改提示。

5、把修改好的ARCL.MNU和ARCL.MNL分别重命名为XXX.MNU和XXX.MNL。至此,你已经准备好了需要的全部内容,按下面的操作方法应用即可。


二、应用自定义资源
1、把XXX文件夹复制到ACAD的安装文件夹。

2、打开ACAD,输入OPTION命令,在支持文件搜索路径列表中添加XXX文件夹项。
3、输入MENULOAD命令,加载菜单样板文件XXX.MNU



OK,经过上述步骤,你就完成了对LSP工具自定义工具栏按钮等工作,并可使用该按钮了。



三、本例程中的资源,可按第二部分的方法直接应用。[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2006-9-10 18:06:05 | 显示全部楼层
截图:请看自定义的工具栏按钮、菜单
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3532个

财富等级: 富可敌国

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2006-9-13 08:51:43 | 显示全部楼层
我自己也试了一下,是下了附件,传的图也显示不了。这样吧,我把附件里的文件源码贴上来。
一、ARCL.LSP(原作者:长不大斑竹)
下面是源码,复制到新建的.txt文件里并改名为ARCL.LSP即可,后面的源码也如此操作:
(defun c:ARCL (/ p1 p2 s a l x xx fx flx r c c1 c2 mspace myobj)
  (defun N ()
    (setq c (- (+ a (* 0.5 pi)) (* x 0.5)))
    (setq cen (polar p1 c r))
    (setq c1 (+ c pi))
    (setq c2 (+ c1 x))
    (setq myobj (vla-addarc mspace (vlax-3d-point cen) r c1 c2))
    (princ)
  )
  (setq p1 (getpoint "\n请输入圆弧第一点:"))
  (setq p2 (getpoint p1 "\n请输入圆弧第二点:"))
  (setq s (getdist p1 "\n请输入弧长:"))
  (setq a (angle p1 p2))
  (setq l (distance p1 p2))
  (vl-load-com)
  (setq    mspace (vla-get-modelspace
         (vla-get-activedocument (vlax-get-acad-object))
           )
  )
  (if (<= s l)
    (progn
      (prompt "您所要画的圆弧并不存在!")
      (princ)
    )
    (progn
      (setq x 2)
      (setq fx (- (/ (sin (/ x 2)) x) (/ (* 0.5 l) s)))
      (setq
    flx (/ (- (* 0.5 x (cos (* 0.5 x))) (sin (* 0.5 x))) (* x x))
      )
      (setq xx (- x (/ fx flx)))
      (while (> (abs (- x xx)) 0.0000000001)
    (setq x xx)
    (setq fx (- (/ (sin (/ x 2)) x) (/ (* 0.5 l) s)))
    (setq flx
           (/ (- (* 0.5 x (cos (* 0.5 x))) (sin (* 0.5 x))) (* x x))
    )
    (setq xx (- x (/ fx flx)))
      )
      (setq r (/ s xx))

      (initget "N S")
      (setq aa (getkword "\n 请输入圆弧方向[逆时针(N)/顺时针(S)]<N>:"))
      (if (= aa nil)
    (setq aa "N")
      )
      (if (= aa "N")
    (N)
    (if (= aa "S")
      (progn
        (setq c (- (+ a (/ x 2)) (* 0.5 pi)))
        (setq cen (polar p1 c r))
        (setq c1 (- (+ c pi) x))
        (setq c2 (+ c pi))
        (setq myobj (vla-addarc mspace (vlax-3d-point cen) r c1 c2))
        (princ)
      )
    )
      )
    )
  )
)

二、本LISP程序的自定义菜单样板文件ARCL.MNU文件内容,包含注释:

//一、定义菜单组的名称[/COLOR] //
***MENUGROUP=ARC

//二、下面定义菜单栏

//定义ARC菜单组的第一个下拉菜单:编号为POP1,ID为ID_H10ARC,菜单名称为“圆弧”,键盘操作方式名为ALT+A
***POP1
ID_H10ARC   [圆弧(&A)]

//定义下拉菜单项的第一个菜单命令:ID编号为ID_H10ARCL
//菜单名称为“起点、端点、弧长”,键盘操作方式为ALT+T,所执行的宏命令为ARCL。
ID_H10ARCL   [起点、端点、弧长(&T)] ^C^C_ARCL

//如要不显示某菜单栏,则在该菜单定义语句前添加“//”号将其屏蔽。


//如该工具有多种类型功能,则可添加多个下拉菜单项,如***POP2
//如该工具具有同种类型的不同命令,则不宜添加主菜单项,应在同一菜单项中添加菜单命令,或添加子菜单即可。

//三、下面定义工具栏
***TOOLBARS

//定义第一个工具条:工具条名称名称为“圆弧”,初始状态为浮动,打开,位置在90,110,1
**TB_H10_ARCL_TOOLBAR
ID_H10ARC   [_Toolbar("圆弧", _Floating, _show,90,110,1)]

//定义本工具条下的一个按钮:名字为“起点、端点、弧长”,按钮大图标ARCL16.bmp,小图标ARCL24.bmp,按钮执行
//的命令为ARCL
ID_H10ARCL_Button  [_Button("起点、端点、弧长", "ARCL16.bmp","ARCL24.bmp")]^C^C_ARCL

//四、指定命令的提示信息
***HELPSTRINGS

//命令ARCL的提示信息为:根据“起点、端点、弧长”绘制圆弧:  ARCL
ID_H10ARCL    [根据“起点、端点、弧长”绘制圆弧:  ARCL]

//菜单文件结束[/COLOR]

三、ARCL.MNL文件源码
;;;;;;;;;注释内容;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;下面将自动加载LSP程序ARCL.LSP中的ARCL命令功能.
;;;;如ARCL.LSP中定义了多个功能的命令,可并列给出如(autoload "ARCL" '("ARCL" "ARCL1" "ARCL2" "ARCL3"))
;;;;也可用这种方式加载VLX文件中的某一部分功能,但应写成(autoload "*.VLX" '("XXXX")) 形式
;;;;;;;;;;注释结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

   
(autoload "ARCL" '("ARCL"))
    (princ)

四、ARCL16.BMP和ARCL24.BMP
由于图片贴不上来,请参照ACAD中圆弧按钮的图标自行编辑一个,分别改名为如上的文件名。



其实,这也不是最好的办法。在本论坛的LISP专栏里,有高手编写了开发自定义菜单的工具软件,不过只能用在低版本的ACAD中,ACAD2007中不能用,期待着该工具升级。[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-13 12:09:40 | 显示全部楼层
郁闷。。。。多次下载中。。连接不到~~~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-14 07:54:45 | 显示全部楼层
最初由 pengwei811 发布
[B]郁闷。。。。多次下载中。。连接不到~~~~~ [/B]


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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 1304个

财富等级: 财源广进

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

使用道具 举报

发表于 2009-3-8 17:54:56 | 显示全部楼层

dddddddddd

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:35 , Processed in 0.273444 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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