乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 85|回复: 3

请各位高手帮忙

[复制链接]

21

主题

47

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
131
发表于 2002-7-12 12:51:00 | 显示全部楼层 |阅读模式
请问乐筑天下CAD实用函数中的如下函数我怎么运行不成功?是否代码有问题?请帮助调试修改一下,万分感谢!
添加文件夹到支持搜索路径中的指定位置
(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时将文件夹添加到路径最前端。
作者
未知

回复

使用道具 举报

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 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)
)
回复

使用道具 举报

21

主题

47

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2002-7-13 20:38:00 | 显示全部楼层
(defun c:md()
  (command "sh" "md d:\\mccad")
  )
注意先用findfile函数查一下目录是否存在。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-28 17:15 , Processed in 1.860548 second(s), 61 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表