明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2458|回复: 6

请各位高手帮忙

[复制链接]
发表于 2002-7-12 12:51:00 | 显示全部楼层 |阅读模式
请问明经CAD实用函数中的如下函数我怎么运行不成功?是否代码有问题?请帮助调试修改一下,万分感谢!
添加文件夹到AutoCAD支持搜索路径中的指定位置
(defun addSupportPath (dir pos / tmp c)
  (setq        tmp ""
        c   -1
  )
  (if (not pos)
    (setq tmp (strcat (getenv "ACAD") ";" dir))
    (mapcar '(lambda (x)
               (setq tmp (if (= (setq c (1+ c)) pos)
                           (strcat tmp ";" dir ";" x)
                           (strcat tmp ";" x)
                         )
               )
             )
            (parse (getenv "ACAD") ";")
    )
  )
  (setenv "ACAD" tmp)
  (princ)
)


功能

添加文件夹到AutoCAD支持搜索路径中的指定位置

参数

文件夹路径及插入的位置(0时插入前端)

示例

(addSupportPath "c:\\myFolder" 2)

注意

位置参数为空时将文件夹添加到路径最后。位置参数为0时将文件夹添加到路径最前端。

作者

未知

 楼主| 发表于 2002-7-15 12:20:00 | 显示全部楼层

感谢版主的帮忙,这里真是个学习交流的好地方!

发表于 2002-7-15 12:33:00 | 显示全部楼层

多来参与,共同提高

发表于 2002-7-12 13:38:00 | 显示全部楼层

要配合其它函数使用

;;;要配合其它函数使用
;;;==================================================================
;;; (StrParse Str Delimiter)
;;;                将具有分隔符的字符串解析为列表
;;;------------------------------------------------------------------
;;; 参数:
;;;                Str                        要解析的字符串
;;;                Delimiter        要搜索的分隔符
;;;------------------------------------------------------------------
;;;        返回:
;;;                一个字符串列表。
;;;                示例:
;;;                (setq a "Harp,Guiness,Black and Tan")
;;;                (StrParse a ",")
;;;                返回:
;;;                ("Harp" "Guiness" "Black and Tan")
;;;------------------------------------------------------------------
;;; 相关主题: (StringToList)
;;;------------------------------------------------------------------
(defun STRPARSE        (STR DELIMITER / SEARCHSTR STRINGLEN RETURN N CHAR)
  (setq SEARCHSTR STR)
  (setq STRINGLEN (strlen SEARCHSTR))
  (setq RETURN '())
  (while (> STRINGLEN 0)
    (setq N 1)
    (setq CHAR (substr SEARCHSTR 1 1))
    (while (and (/= CHAR DELIMITER) (/= CHAR ""))
      (setq N (1+ N))
      (setq CHAR (substr SEARCHSTR N 1))
    )
    (setq RETURN (cons (substr SEARCHSTR 1 (1- N)) RETURN))
    (setq SEARCHSTR (substr SEARCHSTR (1+ N) STRINGLEN))
    (setq STRINGLEN (strlen SEARCHSTR))
  )
  (reverse RETURN)
)

(defun ADDSUPPORTPATH (DIR POS / TMP C)
  (setq        TMP ""
        C   -1
  )
  (if (not POS)
    (setq TMP (strcat (getenv "ACAD") ";" DIR))
    (mapcar '(lambda (X)
               (setq TMP (if (= (setq C (1+ C)) POS)
                           (strcat TMP ";" DIR ";" X)
                           (strcat TMP ";" X)
                         )
               )
             )
            (STRPARSE (getenv "ACAD") ";")
    )
  )
  (setenv "ACAD" TMP)
  (princ)
)
 楼主| 发表于 2002-7-13 14:35:00 | 显示全部楼层

请各位高手帮忙

非常感谢高手的指点,我已经调试过程序,能正常运行。
现在我还有点问题要向您请教,还是和这个程序相关的,因为这个程序只是添加了一个CAD的支持路径,但并没有建立这个文件夹到指定位置,能否实现用程序来建立这个文件夹呢?
等待您的回复,我是个LISP的初学者,给您添麻烦了!
发表于 2002-7-13 15:04:00 | 显示全部楼层

DOSLIB 中函數 "DOS_MKDIR" 可建立文件夹到指定位置

发表于 2002-7-13 20:38:00 | 显示全部楼层

这样也可以创建目录

(defun c:md()
  (command "sh" "md d:\\mccad")
  )

注意先用findfile函数查一下目录是否存在。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 15:50 , Processed in 0.171812 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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