找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1661|回复: 10

[分享]:cad里安装程序其实就一拽那么简单

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2008-1-26 11:59:19 | 显示全部楼层 |阅读模式

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

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

×
[php]
;;;-------------------------------------------------------------
;;;存成文件如abcd.lsp ,放入你程序所在的文件夹
;;;需要安装程序时,进入cad,把abcd.lsp拽入cad就算安装完了
;;;By Aeo @xdsoft.net
;;;-------------------------------------------------------------
(vl-load-com)
;;;====================
;;;生成菜单 ,如有自己的菜单,省略之
;;;--------------------
(defun $_to-write( / a )
    ;;写 mns (我的菜单去掉了大部分,可根据需要写)
    (setq a(open (strcat $load_path"\\" "temp-cht.mns" )"w"))
    (foreach x '("***MENUGROUP=temp-cht""""")(princ x a)(princ "\n" a))
    (foreach x(list
      "***SCREEN"
      "[文字外观]0"
      "[  UNDO  ]u"
      "[        ]"
      "[前一菜单](menucmd \"s=\")"
      
       )
      (princ x a)(princ "\n" a)(princ "[    ]" a)(princ "\n" a)
   )
  (repeat 20(princ "[    ]" a)(princ "\n" a))
  (close a)
  
    ;;写 mnl  (如果有自己菜单,要加入load ...)
  (setq a(open (strcat $load_path"\\" "temp-cht.mnl" )"w"))
      ;;(load \"QQQQ\")是你 所有程序的加载程序,关键!当然也可直接在mnl里写
  (princ "(load \"QQQQ\")"a)(princ "\n" a)
  (close a)
  
  (command "delay" 150)
)

;;;========================
;;;加载菜单
;;;------------------------
(defun reload-chtmenu()
    (if(menugroup "temp-cht")(progn
        (menucmd  "s=")
        (command "FILEDIA"0 "menuunload""temp-cht""FILEDIA"1)
    ))
    ($_to-write) ;;如有自己的菜单,省略这行,把temp-cht改成自己的
    (command "menuload" "temp-cht.mns")
)

;;;=======================
;;;加入路径  如果觉得不完美你可以改进!
;;;-----------------------
(defun $add_SupportPath (dir pos / lst n tmp)
  (setq n -1 lst '(0)
        tmp (getenv "ACAD")
  )
  (cond
       ((not pos)
           (setq tmp (strcat tmp ";" dir))
       )
       ((= pos 0)(setq tmp(strcat dir ";" tmp)))
       (t
         (while (setq n (vl-string-search ";" tmp (1+ n)))
                (setq lst(cons n lst))
          )
         (if(setq n(nth pos (reverse lst)))
            (setq tmp(strcat(substr tmp 1 n) ";" dir (substr tmp (1+ n)) ))
            (setq tmp (strcat tmp ";" dir))
         )
    )
  )
  (setenv "ACAD" tmp)
  (princ)
)

;;;=======================
;;;得到路径     02 07均试过,不知08怎么样.
;;;-----------------------
(defun $get_load_path( / !str n1 n2)
   (while(/= 0(getvar "cmdactive"))(command))
   (princ "\n")
   (setq !str(getvar "lastprompt"))
   (setq n1 (vl-string-search "(LOAD \"" !str)
         n2 (vl-string-search "\")" !str)
         !str(substr !str (+ n1 8) (- n2 n1 7))
         !str (vl-filename-directory  !str)
   )
)


;;;================================
;;;main   你可以利用 $load_path 作一点设置
;;;--------------------------------
(setq $load_path($get_load_path))
($add_SupportPath $load_path 1)
(reload-chtmenu)
(setq $load_path nil)
(princ)
[/php]

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

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2008-1-26 12:04:23 | 显示全部楼层
QQQQ.lsp示例

  1. ;;预设
  2. (setq a ...
  3.          b....
  4. )
  5. ;;加载
  6. (load "xdlisp")

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 208个

财富等级: 日进斗金

发表于 2008-1-27 23:05:48 | 显示全部楼层
得到加载路径存在bug ;)
当路径名太长时.显示的不是最后一个.提示.
命令:
命令: (LOAD "C:/Documents and Settings/Administrator/桌面/新建文件夹
(2)/2.lsp") nil

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

使用道具 举报

发表于 2008-1-30 20:58:11 | 显示全部楼层
好像看不明白哦! 这个程序可以实现永久性加载程序吗?  还有加载一个程序就生成一个菜单吗。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2008-2-6 01:31:51 | 显示全部楼层
最初由 hmillf 发布
[B]好像看不明白哦! 这个程序可以实现永久性加载程序吗?  还有加载一个程序就生成一个菜单吗。 [/B]


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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

 楼主| 发表于 2008-2-6 01:33:39 | 显示全部楼层
最初由 xshrimp 发布
[B]得到加载路径存在bug ;)
当路径名太长时.显示的不是最后一个.提示.
命令:
命令: (LOAD "C:/Documents and Settings/Administrator/桌面/新建文件夹
(2)/2.lsp") nil

!str 此时值  为(2)/2.lsp")  了...
版?.. [/B]


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 23:48 , Processed in 0.197131 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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