DCL位置
我想知道我的DCL文件放在哪里才能让我的LISP工作。我正在尝试再次安装DDnumb。。。我把它放在C/Autocad支持文件夹中。我似乎每隔几年就会问这个问题。。。这是一个路径问题吗?任何帮助或意见都会很好。加载错误消息:
命令:ddnumb
_.撤消当前设置:自动=打开,控制=全部,组合=是,图层=是
输入要撤消的操作数或[自动/控制/开始/结束/标记/返回]:
命令:
错误:退出/退出中止 如果它是一个。dcl文件,因此有两个选项:
1-放置。dcl文件保存到AutoCAD Support文件夹中,并使用findfile功能查找该文件。
2-将其放在任何需要的地方,但需要将完整路径添加到lisp文件中才能找到该文件,否则findfile无法找到它。 那么我们可以在这里链接Lisp和DCL吗?C: \用户\ ian。anderson\Desktop\LISP库,或者我甚至可以将其链接到我的USB驱动器。
我添加了我试图使用的lisp。如果您更新了lisp,您能告诉我需要更新的位置,以链接DCL文件以供将来参考吗?我已经遇到这个问题一两次了。。。
DDNUMB.LSP for release 15
;Auto numbers text strings.
;Written by: S. Restmeyer 3/01
;;;
;;;----------------------ERROR FUNCTION----------------------------
;;;
(DEFUN ERR (S) ;if an error (such as CTRL-C)
;occurs while this command is active...
(if (not (member s '("console break" "Function cancelled")))
(princ (strcat "\nError: " s))
)
(command "_.UNDO" "_E") ;end any outstanding UNDO group
(setvar "cmdecho" cmd) ;restore saved mode
(setq *error* olderr)
(princ)
)
;;;---------------------- MAIN PROGRAM ----------------------------
;;;
(defun C:DDNUMB (/ CMD dcl_id1 olderr)
(setq olderr *error*
*error* err
)
(SETQ CMD (GETVAR "CMDECHO"))
(command "_.UNDO" "_G")
(setvar "cmdecho" 0)
(defun set_replace ()
(cond
((= (get_tile "do_replace") "0")
(set_tile "sort_type" "0")
(mode_tile "sort_type" 1)
(set_tile "start_no" " ")
(mode_tile "start_no" 1)
(set_tile "txt_inc" " ")
(mode_tile "txt_inc" 1)
)
)
(cond
((= (get_tile "do_replace") "1")
(mode_tile "sort_type" 0)
(mode_tile "start_no" 0)
(mode_tile "txt_inc" 0)
(if sort_type
(set_tile "sort_type" sort_type)
(set_tile "sort_type" "0")
)
(if txt_inc
(set_tile "txt_inc" (rtos txt_inc 2 0))
(set_tile "txt_inc" "1")
)
(if start_no
(set_tile "start_no" (rtos start_no 2 0))
(set_tile "start_no" "1")
)
)
)
)
(defun my_help ()
(setq file_name (findfile "autonumb.pdf"))
(startapp "acrobat.exe" (strcat "\"" file_name "\""))
)
(defun get_data ()
(setq suffix (get_tile "suffix"))
(setq prefix (get_tile "prefix"))
(setq start_no (atoi (get_tile "start_no")))
(setq txt_inc (atoi (get_tile "txt_inc")))
(setq sort_type (get_tile "sort_type"))
(setq do_replace (get_tile "do_replace"))
)
;;;-------------------------------------------------------------------
;;;-----------THIS SECTION RETRIEVES USER INPUT INFORMATION------------
;;;
(setq dcl_id1 (load_dialog "autonumb.dcl"))
(if (not (new_dialog "ddstart" dcl_id1))
(exit)
)
(setq sort_list '("Selection" "Top-Bottom" "Left-Right" "Bottom-Top" "Right-Left"))
(start_list "sort_type")
(mapcar 'add_list sort_list)
(end_list)
(if sort_type
(set_tile "sort_type" sort_type)
(set_tile "sort_type" "0")
)
(if prefix
(set_tile "prefix" prefix)
)
(if suffix
(set_tile "suffix" suffix)
)
(if start_no
(set_tile "start_no" (rtos start_no 2 0))
(set_tile "start_no" "1")
)
(if txt_inc
(set_tile "txt_inc" (rtos txt_inc 2 0))
(set_tile "txt_inc" "1")
)
(action_tile "do_replace" "(set_replace)")
(action_tile "numb_hlp" "(my_help)")
(action_tile "accept" "(setq start_ok T)(get_data)(done_dialog 1)")
(action_tile "cancel" "(setq start_ok nil)(done_dialog 0)")
(start_dialog)
(unload_dialog dcl_id1)
;;;-------------------------------------------------------------------
;;;---------------THIS SECTION MODIFIES SELECTED TEXT-----------------
;;;
(defun get_txt (/ sset sset1 sset2 sset3 test num llen temp old)
(setq sset (ssget '((0 . "TEXT"))))
(setq num 0)
(if (= do_replace "1")
(progn
(cond
((= sort_type "0")
(while (< num (sslength sset))
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq start_no (+ start_no txt_inc))
(setq num (+ num 1))
)
)
((= sort_type "1")
(setq temp (caddr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (list temp))
(setq num (+ num 1))
(while (< num (sslength sset))
(setq temp (caddr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (append sset1 (list temp)))
(setq num (+ num 1))
)
(setq sset2 (list ""))
(while (< (- (length sset2) 1) (sslength sset))
(setq temp (apply 'max sset1))
(setq sset2 (append sset2 (list temp)))
(setq sset3 (list ""))
(setq num (- (length sset1) 1))
(while (> num -1)
(setq test (nth num sset1))
(if (not (member test sset2))
(setq sset3 (append sset3 (list test)))
)
(setq num (- num 1))
)
(setq sset1 (cdr sset3))
)
(setq sset2 (cdr sset2))
(setq llen 0)
(while (< llen (length sset2))
(setq test (nth llen sset2))
(setq num 0)
(while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
(setq num (+ num 1))
)
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq start_no (+ start_no txt_inc))
(setq llen (+ llen 1))
)
)
((= sort_type "2")
(setq temp (cadr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (list temp))
(setq num (+ num 1))
(while (< num (sslength sset))
(setq temp (cadr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (append sset1 (list temp)))
(setq num (+ num 1))
)
(setq sset2 (list ""))
(while (< (- (length sset2) 1) (sslength sset))
(setq temp (apply 'max sset1))
(setq sset2 (append sset2 (list temp)))
(setq sset3 (list ""))
(setq num (- (length sset1) 1))
(while (> num -1)
(setq test (nth num sset1))
(if (not (member test sset2))
(setq sset3 (append sset3 (list test)))
)
(setq num (- num 1))
)
(setq sset1 (cdr sset3))
)
(setq sset2 (cdr sset2))
(setq llen (- (length sset2) 1))
(while (> llen -1)
(setq test (nth llen sset2))
(setq num 0)
(while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
(setq num (+ num 1))
)
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq start_no (+ start_no txt_inc))
(setq llen (- llen 1))
)
)
((= sort_type "3")
(setq temp (caddr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (list temp))
(setq num (+ num 1))
(while (< num (sslength sset))
(setq temp (caddr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (append sset1 (list temp)))
(setq num (+ num 1))
)
(setq sset2 (list ""))
(while (< (- (length sset2) 1) (sslength sset))
(setq temp (apply 'max sset1))
(setq sset2 (append sset2 (list temp)))
(setq sset3 (list ""))
(setq num (- (length sset1) 1))
(while (> num -1)
(setq test (nth num sset1))
(if (not (member test sset2))
(setq sset3 (append sset3 (list test)))
)
(setq num (- num 1))
)
(setq sset1 (cdr sset3))
)
(setq sset2 (cdr sset2))
(setq llen (- (length sset2) 1))
(while (> llen -1)
(setq test (nth llen sset2))
(setq num 0)
(while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
(setq num (+ num 1))
)
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq start_no (+ start_no txt_inc))
(setq llen (- llen 1))
)
)
((= sort_type "4")
(setq temp (cadr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (list temp))
(setq num (+ num 1))
(while (< num (sslength sset))
(setq temp (cadr (assoc 10 (entget (ssname sset num)))))
(setq sset1 (append sset1 (list temp)))
(setq num (+ num 1))
)
(setq sset2 (list ""))
(while (< (- (length sset2) 1) (sslength sset))
(setq temp (apply 'max sset1))
(setq sset2 (append sset2 (list temp)))
(setq sset3 (list ""))
(setq num (- (length sset1) 1))
(while (> num -1)
(setq test (nth num sset1))
(if (not (member test sset2))
(setq sset3 (append sset3 (list test)))
)
(setq num (- num 1))
)
(setq sset1 (cdr sset3))
)
(setq sset2 (cdr sset2))
(setq llen 0)
(while (< llen (length sset2))
(setq test (nth llen sset2))
(setq num 0)
(while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
(setq num (+ num 1))
)
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq start_no (+ start_no txt_inc))
(setq llen (+ llen 1))
)
)
)
)
(progn
(setq start_no nil)
(setq txt_inc nil)
(while (< num (sslength sset))
(setq temp (entget (ssname sset num)))
(setq old (assoc 1 temp))
(setq new (cons 1 (strcatprefix (cdr old) suffix)))
(setq temp (subst new old temp))
(entmod temp)
(setq num (+ num 1))
)
)
)
)
(if start_ok
(get_txt)
)
(setq *error* olderr)
(setvar "cmdecho" cmd)
) 这里是DCL文件不确定是否需要更新?非常感谢。
//----------------------------------------------------------------------------
//
// Corresponding dialogue for DDNUMB.LSP
//
//----------------------------------------------------------------------------
//dcl_settings : default_dcl_settings { audit_level = 3; }
ddstart : dialog {
label = "Auto Number";
initial_focus = "prefix";
: row {
: boxed_column {
fixed_width = true;
label = "&Prefix";
: edit_box {
key = "prefix";
mnemonic = "P";
fixed_width = true;
}
}
: boxed_column {
fixed_width = true;
label = "Start &No";
: edit_box {
key = "start_no";
mnemonic = "N";
fixed_width = true;
}
}
: boxed_column {
fixed_width = true;
label = "&Suffix";
: edit_box {
key = "suffix";
mnemonic = "S";
fixed_width = true;
}
}
}
: row {
: boxed_column {
fixed_width = true;
label = "&Increment";
: edit_box {
key = "txt_inc";
mnemonic = "I";
fixed_width = true;
}
}
: boxed_column {
fixed_width = true;
label = "Sort &By";
: popup_list {
key = "sort_type";
width = 13;
fixed_width = true;
}
}
: toggle {
label = "Replace";
key = "do_replace";
value = 1;
}
}
spacer_1;
: row {
ok_cancel;
: button {
key = "numb_hlp";
label = "Help";
mnemonic = "H";
}
}
} 只需将DCL代码保存为一个名称:utonum。dcl并将其定位到AutoCAD support文件夹中,然后进行尝试。
但是如果你想把它放到另一个位置,只需要得到该位置的完整路径,并确保在完整路径名中有两个反斜杠或一个正斜杠。 我需要支持路径的管理员权限,我不知道如何将Lisp更改到新位置。 如果您想按照前面提供的路径将其定位到特定文件夹中,则必须如下所示:
C:\\Users\\ian.anderson\\Desktop\\LISP LIBRARY\\autonumb.dcl
或者:
C:/Users/ian.anderson/Desktop/LISP LIBRARY/autonumb.dcl 因此,如果我使用C:\\Users\\ian。anderson\\Desktop\\LISP LIBRARY\\autonumb。dcl
我应该在lisp中的什么位置插入它?我不知道怎么写这些。我所能做的就是做一个热键。 在以下将对话框加载到lisp文件的路径中。
(setq dcl_id1 (load_dialog "C:\\Users\\ian.anderson\\Desktop\\LISP LIBRARY\\autonumb.dcl"))
注意:我修改了我的上一篇文章,因为我错误地错过了dcl文件的第一个字符,即“a”。 哇,谢谢你。你教会了我一些新的东西。让我度过了一整天:)
页:
[1]
2