明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1550|回复: 3

★★★★★【各位大师们,救救我吧】★★★★★

[复制链接]
发表于 2008-3-2 20:34 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-3-2 21:19:30 编辑

各位大师们,救救我吧!

使用秋枫的“二次开发安装程序”,其他一切正常,就是程序自动添加支持文件搜索路径时,出现错误,程序只自动添加根目录和最后一个目录,代码如下:

;;; 移除支持文件搜索路径
;;; ---------------------------------------------------------------------------------
(defun RemoveSupportPath (PathToRemove / supportlist)
  (setq supportlist (strparse (getenv "ACAD") ";"))
  (setq supportlist (vl-remove "" supportlist))
  (setq    supportlist
     (vl-remove-if
       '(lambda (x) (= (strcase x) (strcase PathToRemove)))
       supportlist
     )
  )
  (setenv "ACAD" (strUnParse supportlist ";"))
)

;;; 添加支持文件搜索路径
;;; ---------------------------------------------------------------------------------
;;; note:  第二个参数如果为真, 插最前,否则插最后
;;;       
(defun AddSupportPath (PathToAdd isFirst / supportlist)
  (RemoveSupportPath PathToAdd)
  (setq supportlist (strparse (getenv "ACAD") ";"))
  (setq supportlist (vl-remove "" supportlist))
  (if isFirst
    (setq supportlist (cons PathToAdd supportlist))
    (setq supportlist (append supportlist (list PathToAdd)))
  )
  (setenv "ACAD" (strUnParse supportlist ";"))
)

;;; 初始化主函数
;;; ---------------------------------------------------
(defun Init_scei ()
  ;; 添加支持路径 
  (AddSupportPath (GetsceiPath) nil)
  (AddSupportPath (strcat (GetsceiPath) "\\1") nil)
  (AddSupportPath (strcat (GetsceiPath) "\\2") nil)
  (AddSupportPath (strcat (GetsceiPath) "\\3") nil)
  (AddSupportPath (strcat (GetsceiPath) "\\4") nil)

以上,我要添加的是5个目录,分别是:根目录和1、2、3、4这些文件夹,但是安装后,只添加了2个目录,其中文件夹1、2、3没有添加进去(也就是程序只自动添加根目录和最后一个目录),反复操作了数百变了,还是失败。

问过秋枫本人,他说这不是这个安装制作程序的问题,是LISP的问题,但是以上这些代码都是从他给的样列中,提取出来的,他说有问题让我来这里求助!谢谢各位版主、高手们,帮忙想想办法!这次先谢谢了!

发表于 2008-3-2 21:31 | 显示全部楼层
这样试试:
  1. (defun AddSupportPath (PathToAdd isFirst / supportlist)
  2.   (RemoveSupportPath PathToAdd)
  3.   (setq supportlist (strcat (getenv "ACAD") ";"))
  4.   (setq PathToAdd (strcat (strUnParse PathToAdd ";") ";"))
  5.   (setq supportlist (vl-remove "" supportlist))
  6.   (if isFirst
  7.     (setq supportlist (cons PathToAdd supportlist))
  8.     (setq supportlist (append supportlist (list PathToAdd)))
  9.   )
  10.   (setenv "ACAD" (strUnParse supportlist ";"))
  11. )
回复 支持 0 反对 1

使用道具 举报

发表于 2008-3-2 22:05 | 显示全部楼层
本帖最后由 作者 于 2008-3-2 22:07:54 编辑

原程序是没有问题的,问题出在你那几个目录不存在,所以添加失败。第一个和最后一个其实只是一个假象,你试试(getenv "ACAD"),你会发现他们并不存在。
不妨试试先在(GetsceiPath)下面建立这几个目录再试试。
解决的办法是在AddSupportPath里面先判断目录是否存在,如不存在则用vl-mkdir先建立目录然后再添加进支持路径里面

 楼主| 发表于 2008-3-3 02:30 | 显示全部楼层

问题已解决,感谢2位,原因是程序在安装copy的过程中,copy过去的是4个空的文件夹,里面没有任何文件,我试着放一点东西进去,它就能找到了!反复安装卸载了不下500次,我终于成功了,可谓是愚公移山,功夫不负有心人!!!终于把自己的开发的全套程序都放进去,安装调试成功了!

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

本版积分规则

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

GMT+8, 2024-5-17 10:28 , Processed in 0.174312 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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