乐筑天下

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

[编程交流] DDNUB请帮忙!加载错误

[复制链接]

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 08:50:45 | 显示全部楼层 |阅读模式
我正在运行Autocad 2011,我遇到了一个加载错误,我在Autocad 2005中使用过这个lisp,并且工作得很好,仍然像ti一样,比express tols中的新自动编号更好
 
 
  1. ;DDNUMB.LSP for release 15
  2. ;Auto numbers text strings.
  3. ;Written by: S. Restmeyer 3/01
  4. ;;;
  5. ;;;----------------------ERROR FUNCTION----------------------------
  6. ;;;
  7. (DEFUN ERR (S)                                ;if an error (such as CTRL-C)
  8.                                 ;occurs while this command is active...
  9. (if (not (member s '("console break" "Function cancelled")))
  10.    (princ (strcat "\nError: " s))
  11. )
  12. (command "_.UNDO" "_E")                ;end any outstanding UNDO group
  13. (setvar "cmdecho" cmd)                ;restore saved mode
  14. (setq *error* olderr)
  15. (princ)
  16. )
  17. ;;;---------------------- MAIN PROGRAM ----------------------------
  18. ;;;
  19. (defun C:DDNUMB (/ CMD dcl_id1 olderr)
  20. (setq        olderr        *error*
  21. *error*        err
  22. )
  23. (SETQ CMD (GETVAR "CMDECHO"))
  24. (command "_.UNDO" "_G")
  25. (setvar "cmdecho" 0)
  26. (defun set_replace ()
  27.    (cond
  28.      ((= (get_tile "do_replace") "0")
  29.       (set_tile "sort_type" "0")
  30.       (mode_tile "sort_type" 1)
  31.       (set_tile "start_no" " ")
  32.       (mode_tile "start_no" 1)
  33.       (set_tile "txt_inc" " ")
  34.       (mode_tile "txt_inc" 1)
  35.      )
  36.      )
  37.    (cond
  38.      ((= (get_tile "do_replace") "1")
  39.       (mode_tile "sort_type" 0)
  40.       (mode_tile "start_no" 0)
  41.       (mode_tile "txt_inc" 0)
  42.       (if sort_type
  43.    (set_tile "sort_type" sort_type)
  44.    (set_tile "sort_type" "0")
  45.    )
  46.       (if txt_inc
  47.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  48.    (set_tile "txt_inc" "1")
  49.    )
  50.       (if start_no
  51.    (set_tile "start_no" (rtos start_no 2 0))
  52.    (set_tile "start_no" "1")
  53.    )
  54.      )
  55.      )
  56.    )
  57. (defun my_help ()
  58.    (setq file_name (findfile "autonumb.pdf"))
  59.    (startapp "acrobat.exe" (strcat """ file_name """))
  60.    )
  61.       (defun get_data ()
  62. (setq suffix (get_tile "suffix"))
  63. (setq prefix (get_tile "prefix"))
  64. (setq start_no (atoi (get_tile "start_no")))
  65. (setq txt_inc (atoi (get_tile "txt_inc")))
  66. (setq sort_type (get_tile "sort_type"))
  67. (setq do_replace (get_tile "do_replace"))
  68.      )
  69. ;;;-------------------------------------------------------------------
  70. ;;;-----------THIS SECTION RETRIEVES USER INPUT INFORMATION------------
  71. ;;;
  72.     (setq dcl_id1 (load_dialog "autonumb.dcl"))
  73.      (if (not (new_dialog "ddstart" dcl_id1))
  74. (exit)
  75.      )
  76. (setq sort_list '("Selection" "Top-Bottom" "Left-Right" "Bottom-Top" "Right-Left"))
  77.         (start_list "sort_type")
  78. (mapcar 'add_list sort_list)
  79.         (end_list)
  80. (if sort_type
  81.    (set_tile "sort_type" sort_type)
  82.    (set_tile "sort_type" "0")
  83.    )
  84. (if prefix
  85.    (set_tile "prefix" prefix)
  86.    )
  87. (if suffix
  88.    (set_tile "suffix" suffix)
  89.    )
  90. (if start_no
  91.    (set_tile "start_no" (rtos start_no 2 0))
  92.    (set_tile "start_no" "1")
  93.    )
  94. (if txt_inc
  95.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  96.    (set_tile "txt_inc" "1")
  97.    )
  98.    (action_tile "do_replace" "(set_replace)")
  99.    (action_tile "numb_hlp" "(my_help)")
  100.    (action_tile "accept" "(setq start_ok T)(get_data)(done_dialog 1)")
  101.    (action_tile "cancel" "(setq start_ok nil)(done_dialog 0)")
  102.    (start_dialog)
  103.      (unload_dialog dcl_id1)
  104. ;;;-------------------------------------------------------------------
  105. ;;;---------------THIS SECTION MODIFIES SELECTED TEXT-----------------
  106. ;;;
  107. (defun get_txt (/ sset sset1 sset2 sset3 test num llen temp old)
  108.    (setq sset (ssget '((0 . "TEXT"))))
  109.    (setq num 0)
  110.   (if (= do_replace "1")
  111.     (progn
  112.    (cond
  113.      ((= sort_type "0")
  114.     (while (< num (sslength sset))
  115.       (setq temp (entget (ssname sset num)))
  116.       (setq old (assoc 1 temp))
  117.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  118.            (setq temp (subst new old temp))
  119.            (entmod temp)
  120.       (setq start_no (+ start_no txt_inc))
  121.       (setq num (+ num 1))
  122.       )
  123.       )
  124.      ((= sort_type "1")
  125.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  126.       (setq sset1 (list temp))
  127.       (setq num (+ num 1))
  128.     (while (< num (sslength sset))
  129.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  130.       (setq sset1 (append sset1 (list temp)))
  131.       (setq num (+ num 1))
  132.       )
  133.       (setq sset2 (list ""))
  134.       (while (< (- (length sset2) 1) (sslength sset))
  135.     (setq temp (apply 'max sset1))
  136.     (setq sset2 (append sset2 (list temp)))
  137.     (setq sset3 (list ""))
  138.     (setq num (- (length sset1) 1))
  139.      (while (> num -1)
  140. (setq test (nth num sset1))
  141. (if (not (member test sset2))
  142.   (setq sset3 (append sset3 (list test)))
  143.   )
  144. (setq num (- num 1))
  145. )
  146.       (setq sset1 (cdr sset3))
  147.      )
  148.       (setq sset2 (cdr sset2))
  149.       (setq llen 0)
  150.       (while (< llen (length sset2))
  151. (setq test (nth llen sset2))
  152. (setq num 0)
  153. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  154.    (setq num (+ num 1))
  155.    )
  156. (setq temp (entget (ssname sset num)))
  157.       (setq old (assoc 1 temp))
  158.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  159.            (setq temp (subst new old temp))
  160.            (entmod temp)
  161.       (setq start_no (+ start_no txt_inc))
  162.       (setq llen (+ llen 1))
  163.       )
  164.       )
  165.      ((= sort_type "2")
  166.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  167.       (setq sset1 (list temp))
  168.       (setq num (+ num 1))
  169.     (while (< num (sslength sset))
  170.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  171.       (setq sset1 (append sset1 (list temp)))
  172.       (setq num (+ num 1))
  173.       )
  174.       (setq sset2 (list ""))
  175.       (while (< (- (length sset2) 1) (sslength sset))
  176.     (setq temp (apply 'max sset1))
  177.     (setq sset2 (append sset2 (list temp)))
  178.     (setq sset3 (list ""))
  179.     (setq num (- (length sset1) 1))
  180.      (while (> num -1)
  181. (setq test (nth num sset1))
  182. (if (not (member test sset2))
  183.   (setq sset3 (append sset3 (list test)))
  184.   )
  185. (setq num (- num 1))
  186. )
  187.       (setq sset1 (cdr sset3))
  188.      )
  189.       (setq sset2 (cdr sset2))
  190.      (setq llen (- (length sset2) 1))
  191.       (while (> llen -1)
  192. (setq test (nth llen sset2))
  193. (setq num 0)
  194. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  195.    (setq num (+ num 1))
  196.    )
  197. (setq temp (entget (ssname sset num)))
  198.       (setq old (assoc 1 temp))
  199.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  200.            (setq temp (subst new old temp))
  201.            (entmod temp)
  202.       (setq start_no (+ start_no txt_inc))
  203.       (setq llen (- llen 1))
  204.       )
  205.       )
  206.      ((= sort_type "3")
  207.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  208.       (setq sset1 (list temp))
  209.       (setq num (+ num 1))
  210.     (while (< num (sslength sset))
  211.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  212.       (setq sset1 (append sset1 (list temp)))
  213.       (setq num (+ num 1))
  214.       )
  215.       (setq sset2 (list ""))
  216.       (while (< (- (length sset2) 1) (sslength sset))
  217.     (setq temp (apply 'max sset1))
  218.     (setq sset2 (append sset2 (list temp)))
  219.     (setq sset3 (list ""))
  220.     (setq num (- (length sset1) 1))
  221.      (while (> num -1)
  222. (setq test (nth num sset1))
  223. (if (not (member test sset2))
  224.   (setq sset3 (append sset3 (list test)))
  225.   )
  226. (setq num (- num 1))
  227. )
  228.       (setq sset1 (cdr sset3))
  229.      )
  230.       (setq sset2 (cdr sset2))
  231.       (setq llen (- (length sset2) 1))
  232.       (while (> llen -1)
  233. (setq test (nth llen sset2))
  234. (setq num 0)
  235. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  236.    (setq num (+ num 1))
  237.    )
  238. (setq temp (entget (ssname sset num)))
  239.       (setq old (assoc 1 temp))
  240.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  241.            (setq temp (subst new old temp))
  242.            (entmod temp)
  243.       (setq start_no (+ start_no txt_inc))
  244.       (setq llen (- llen 1))
  245.       )
  246.       )
  247.      ((= sort_type "4")
  248.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  249.       (setq sset1 (list temp))
  250.       (setq num (+ num 1))
  251.     (while (< num (sslength sset))
  252.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  253.       (setq sset1 (append sset1 (list temp)))
  254.       (setq num (+ num 1))
  255.       )
  256.       (setq sset2 (list ""))
  257.       (while (< (- (length sset2) 1) (sslength sset))
  258.     (setq temp (apply 'max sset1))
  259.     (setq sset2 (append sset2 (list temp)))
  260.     (setq sset3 (list ""))
  261.     (setq num (- (length sset1) 1))
  262.      (while (> num -1)
  263. (setq test (nth num sset1))
  264. (if (not (member test sset2))
  265.   (setq sset3 (append sset3 (list test)))
  266.   )
  267. (setq num (- num 1))
  268. )
  269.       (setq sset1 (cdr sset3))
  270.      )
  271.       (setq sset2 (cdr sset2))
  272.       (setq llen 0)
  273.       (while (< llen (length sset2))
  274. (setq test (nth llen sset2))
  275. (setq num 0)
  276. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  277.    (setq num (+ num 1))
  278.    )
  279. (setq temp (entget (ssname sset num)))
  280.       (setq old (assoc 1 temp))
  281.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  282.            (setq temp (subst new old temp))
  283.            (entmod temp)
  284.       (setq start_no (+ start_no txt_inc))
  285.       (setq llen (+ llen 1))
  286.       )
  287.       )
  288.      )
  289.    )
  290.     (progn
  291.       (setq start_no nil)
  292.       (setq txt_inc nil)
  293.      (while (< num (sslength sset))
  294.       (setq temp (entget (ssname sset num)))
  295.       (setq old (assoc 1 temp))
  296.   (setq new (cons 1 (strcat  prefix (cdr old) suffix)))
  297.            (setq temp (subst new old temp))
  298.            (entmod temp)
  299.       (setq num (+ num 1))
  300.       )
  301.       )
  302.     )
  303.    )
  304.   (if start_ok
  305.    (get_txt)
  306. )
  307.   (setq *error* olderr)
  308. (setvar "cmdecho" cmd)
  309.    )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:02:21 | 显示全部楼层
快速阅读此代码发布
回复

使用道具 举报

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 09:05:18 | 显示全部楼层
  1. ;DDNUMB.LSP for release 15
  2. ;Auto numbers text strings.
  3. ;Written by: S. Restmeyer 3/01
  4. ;;;
  5. ;;;----------------------ERROR FUNCTION----------------------------
  6. ;;;
  7. (DEFUN ERR (S)                                ;if an error (such as CTRL-C)
  8.                                 ;occurs while this command is active...
  9. (if (not (member s '("console break" "Function cancelled")))
  10.    (princ (strcat "\nError: " s))
  11. )
  12. (command "_.UNDO" "_E")                ;end any outstanding UNDO group
  13. (setvar "cmdecho" cmd)                ;restore saved mode
  14. (setq *error* olderr)
  15. (princ)
  16. )
  17. ;;;---------------------- MAIN PROGRAM ----------------------------
  18. ;;;
  19. (defun C:DDNUMB (/ CMD dcl_id1 olderr)
  20. (setq        olderr        *error*
  21. *error*        err
  22. )
  23. (SETQ CMD (GETVAR "CMDECHO"))
  24. (command "_.UNDO" "_G")
  25. (setvar "cmdecho" 0)
  26. (defun set_replace ()
  27.    (cond
  28.      ((= (get_tile "do_replace") "0")
  29.       (set_tile "sort_type" "0")
  30.       (mode_tile "sort_type" 1)
  31.       (set_tile "start_no" " ")
  32.       (mode_tile "start_no" 1)
  33.       (set_tile "txt_inc" " ")
  34.       (mode_tile "txt_inc" 1)
  35.      )
  36.      )
  37.    (cond
  38.      ((= (get_tile "do_replace") "1")
  39.       (mode_tile "sort_type" 0)
  40.       (mode_tile "start_no" 0)
  41.       (mode_tile "txt_inc" 0)
  42.       (if sort_type
  43.    (set_tile "sort_type" sort_type)
  44.    (set_tile "sort_type" "0")
  45.    )
  46.       (if txt_inc
  47.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  48.    (set_tile "txt_inc" "1")
  49.    )
  50.       (if start_no
  51.    (set_tile "start_no" (rtos start_no 2 0))
  52.    (set_tile "start_no" "1")
  53.    )
  54.      )
  55.      )
  56.    )
  57. (defun my_help ()
  58.    (setq file_name (findfile "autonumb.pdf"))
  59.    (startapp "acrobat.exe" (strcat """ file_name """))
  60.    )
  61.       (defun get_data ()
  62. (setq suffix (get_tile "suffix"))
  63. (setq prefix (get_tile "prefix"))
  64. (setq start_no (atoi (get_tile "start_no")))
  65. (setq txt_inc (atoi (get_tile "txt_inc")))
  66. (setq sort_type (get_tile "sort_type"))
  67. (setq do_replace (get_tile "do_replace"))
  68.      )
  69. ;;;-------------------------------------------------------------------
  70. ;;;-----------THIS SECTION RETRIEVES USER INPUT INFORMATION------------
  71. ;;;
  72.     (setq dcl_id1 (load_dialog "autonumb.dcl"))
  73.      (if (not (new_dialog "ddstart" dcl_id1))
  74. (exit)
  75.      )
  76. (setq sort_list '("Selection" "Top-Bottom" "Left-Right" "Bottom-Top" "Right-Left"))
  77.         (start_list "sort_type")
  78. (mapcar 'add_list sort_list)
  79.         (end_list)
  80. (if sort_type
  81.    (set_tile "sort_type" sort_type)
  82.    (set_tile "sort_type" "0")
  83.    )
  84. (if prefix
  85.    (set_tile "prefix" prefix)
  86.    )
  87. (if suffix
  88.    (set_tile "suffix" suffix)
  89.    )
  90. (if start_no
  91.    (set_tile "start_no" (rtos start_no 2 0))
  92.    (set_tile "start_no" "1")
  93.    )
  94. (if txt_inc
  95.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  96.    (set_tile "txt_inc" "1")
  97.    )
  98.    (action_tile "do_replace" "(set_replace)")
  99.    (action_tile "numb_hlp" "(my_help)")
  100.    (action_tile "accept" "(setq start_ok T)(get_data)(done_dialog 1)")
  101.    (action_tile "cancel" "(setq start_ok nil)(done_dialog 0)")
  102.    (start_dialog)
  103.      (unload_dialog dcl_id1)
  104. ;;;-------------------------------------------------------------------
  105. ;;;---------------THIS SECTION MODIFIES SELECTED TEXT-----------------
  106. ;;;
  107. (defun get_txt (/ sset sset1 sset2 sset3 test num llen temp old)
  108.    (setq sset (ssget '((0 . "TEXT"))))
  109.    (setq num 0)
  110.   (if (= do_replace "1")
  111.     (progn
  112.    (cond
  113.      ((= sort_type "0")
  114.     (while (< num (sslength sset))
  115.       (setq temp (entget (ssname sset num)))
  116.       (setq old (assoc 1 temp))
  117.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  118.            (setq temp (subst new old temp))
  119.            (entmod temp)
  120.       (setq start_no (+ start_no txt_inc))
  121.       (setq num (+ num 1))
  122.       )
  123.       )
  124.      ((= sort_type "1")
  125.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  126.       (setq sset1 (list temp))
  127.       (setq num (+ num 1))
  128.     (while (< num (sslength sset))
  129.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  130.       (setq sset1 (append sset1 (list temp)))
  131.       (setq num (+ num 1))
  132.       )
  133.       (setq sset2 (list ""))
  134.       (while (< (- (length sset2) 1) (sslength sset))
  135.     (setq temp (apply 'max sset1))
  136.     (setq sset2 (append sset2 (list temp)))
  137.     (setq sset3 (list ""))
  138.     (setq num (- (length sset1) 1))
  139.      (while (> num -1)
  140. (setq test (nth num sset1))
  141. (if (not (member test sset2))
  142.   (setq sset3 (append sset3 (list test)))
  143.   )
  144. (setq num (- num 1))
  145. )
  146.       (setq sset1 (cdr sset3))
  147.      )
  148.       (setq sset2 (cdr sset2))
  149.       (setq llen 0)
  150.       (while (< llen (length sset2))
  151. (setq test (nth llen sset2))
  152. (setq num 0)
  153. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  154.    (setq num (+ num 1))
  155.    )
  156. (setq temp (entget (ssname sset num)))
  157.       (setq old (assoc 1 temp))
  158.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  159.            (setq temp (subst new old temp))
  160.            (entmod temp)
  161.       (setq start_no (+ start_no txt_inc))
  162.       (setq llen (+ llen 1))
  163.       )
  164.       )
  165.      ((= sort_type "2")
  166.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  167.       (setq sset1 (list temp))
  168.       (setq num (+ num 1))
  169.     (while (< num (sslength sset))
  170.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  171.       (setq sset1 (append sset1 (list temp)))
  172.       (setq num (+ num 1))
  173.       )
  174.       (setq sset2 (list ""))
  175.       (while (< (- (length sset2) 1) (sslength sset))
  176.     (setq temp (apply 'max sset1))
  177.     (setq sset2 (append sset2 (list temp)))
  178.     (setq sset3 (list ""))
  179.     (setq num (- (length sset1) 1))
  180.      (while (> num -1)
  181. (setq test (nth num sset1))
  182. (if (not (member test sset2))
  183.   (setq sset3 (append sset3 (list test)))
  184.   )
  185. (setq num (- num 1))
  186. )
  187.       (setq sset1 (cdr sset3))
  188.      )
  189.       (setq sset2 (cdr sset2))
  190.      (setq llen (- (length sset2) 1))
  191.       (while (> llen -1)
  192. (setq test (nth llen sset2))
  193. (setq num 0)
  194. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  195.    (setq num (+ num 1))
  196.    )
  197. (setq temp (entget (ssname sset num)))
  198.       (setq old (assoc 1 temp))
  199.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  200.            (setq temp (subst new old temp))
  201.            (entmod temp)
  202.       (setq start_no (+ start_no txt_inc))
  203.       (setq llen (- llen 1))
  204.       )
  205.       )
  206.      ((= sort_type "3")
  207.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  208.       (setq sset1 (list temp))
  209.       (setq num (+ num 1))
  210.     (while (< num (sslength sset))
  211.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  212.       (setq sset1 (append sset1 (list temp)))
  213.       (setq num (+ num 1))
  214.       )
  215.       (setq sset2 (list ""))
  216.       (while (< (- (length sset2) 1) (sslength sset))
  217.     (setq temp (apply 'max sset1))
  218.     (setq sset2 (append sset2 (list temp)))
  219.     (setq sset3 (list ""))
  220.     (setq num (- (length sset1) 1))
  221.      (while (> num -1)
  222. (setq test (nth num sset1))
  223. (if (not (member test sset2))
  224.   (setq sset3 (append sset3 (list test)))
  225.   )
  226. (setq num (- num 1))
  227. )
  228.       (setq sset1 (cdr sset3))
  229.      )
  230.       (setq sset2 (cdr sset2))
  231.       (setq llen (- (length sset2) 1))
  232.       (while (> llen -1)
  233. (setq test (nth llen sset2))
  234. (setq num 0)
  235. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  236.    (setq num (+ num 1))
  237.    )
  238. (setq temp (entget (ssname sset num)))
  239.       (setq old (assoc 1 temp))
  240.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  241.            (setq temp (subst new old temp))
  242.            (entmod temp)
  243.       (setq start_no (+ start_no txt_inc))
  244.       (setq llen (- llen 1))
  245.       )
  246.       )
  247.      ((= sort_type "4")
  248.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  249.       (setq sset1 (list temp))
  250.       (setq num (+ num 1))
  251.     (while (< num (sslength sset))
  252.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  253.       (setq sset1 (append sset1 (list temp)))
  254.       (setq num (+ num 1))
  255.       )
  256.       (setq sset2 (list ""))
  257.       (while (< (- (length sset2) 1) (sslength sset))
  258.     (setq temp (apply 'max sset1))
  259.     (setq sset2 (append sset2 (list temp)))
  260.     (setq sset3 (list ""))
  261.     (setq num (- (length sset1) 1))
  262.      (while (> num -1)
  263. (setq test (nth num sset1))
  264. (if (not (member test sset2))
  265.   (setq sset3 (append sset3 (list test)))
  266.   )
  267. (setq num (- num 1))
  268. )
  269.       (setq sset1 (cdr sset3))
  270.      )
  271.       (setq sset2 (cdr sset2))
  272.       (setq llen 0)
  273.       (while (< llen (length sset2))
  274. (setq test (nth llen sset2))
  275. (setq num 0)
  276. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  277.    (setq num (+ num 1))
  278.    )
  279. (setq temp (entget (ssname sset num)))
  280.       (setq old (assoc 1 temp))
  281.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  282.            (setq temp (subst new old temp))
  283.            (entmod temp)
  284.       (setq start_no (+ start_no txt_inc))
  285.       (setq llen (+ llen 1))
  286.       )
  287.       )
  288.      )
  289.    )
  290.     (progn
  291.       (setq start_no nil)
  292.       (setq txt_inc nil)
  293.      (while (< num (sslength sset))
  294.       (setq temp (entget (ssname sset num)))
  295.       (setq old (assoc 1 temp))
  296.   (setq new (cons 1 (strcat  prefix (cdr old) suffix)))
  297.            (setq temp (subst new old temp))
  298.            (entmod temp)
  299.       (setq num (+ num 1))
  300.       )
  301.       )
  302.     )
  303.    )
  304.   (if start_ok
  305.    (get_txt)
  306. )
  307.   (setq *error* olderr)
  308. (setvar "cmdecho" cmd)
  309.    )
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 09:08:49 | 显示全部楼层
你能把自动麻醉贴出来吗。dcl文件?也许你只需要将该文件添加到你的支持文件夹中。只是一个想法,没有深入思考。
回复

使用道具 举报

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 09:20:47 | 显示全部楼层
那么我用这个文件做什么,或者我需要做什么?我已经好几年没有在新电脑上加载这个了。。。。
  1. //----------------------------------------------------------------------------
  2. //
  3. // Corresponding dialogue for DDNUMB.LSP
  4. //
  5. //----------------------------------------------------------------------------
  6. //dcl_settings : default_dcl_settings { audit_level = 3; }
  7. ddstart : dialog {
  8.     label = "Auto Number";
  9. initial_focus = "prefix";
  10.         : row {
  11.         : boxed_column {
  12.                 fixed_width = true;
  13.                 label = "&Prefix";
  14.                         : edit_box {
  15.                                 key = "prefix";
  16.                                 mnemonic = "P";
  17.                                 fixed_width = true;
  18.                                    }
  19.                         }
  20.         : boxed_column {
  21.                 fixed_width = true;
  22.                 label = "Start &No";
  23.                         : edit_box {
  24.                                 key = "start_no";
  25.                                 mnemonic = "N";
  26.                                 fixed_width = true;
  27.                                    }
  28.                         }
  29.         : boxed_column {
  30.                 fixed_width = true;
  31.                 label = "&Suffix";
  32.                         : edit_box {
  33.                                 key = "suffix";
  34.                                 mnemonic = "S";
  35.                                 fixed_width = true;
  36.                                    }
  37.                         }
  38.                 }
  39. : row {
  40.         : boxed_column {
  41.                 fixed_width = true;
  42.                 label = "&Increment";
  43.                         : edit_box {
  44.                                 key = "txt_inc";
  45.                                 mnemonic = "I";
  46.                                 fixed_width = true;
  47.                                    }
  48.                         }
  49.         : boxed_column {
  50.                 fixed_width = true;
  51.                 label = "Sort &By";
  52.                         : popup_list {
  53.                                 key = "sort_type";
  54.                                 width = 13;
  55.                                 fixed_width = true;
  56.                                 }
  57.                         }
  58.         : toggle {
  59.                 label = "Replace";
  60.                 key = "do_replace";
  61.                 value = 1;
  62.                 }
  63.         }
  64.         spacer_1;
  65.         : row {
  66. ok_cancel;
  67.                 : button {
  68.                         key = "numb_hlp";
  69.                         label = "Help";
  70.                         mnemonic = "H";
  71.                         }
  72.                 }
  73.         }
回复

使用道具 举报

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 09:23:33 | 显示全部楼层
我无法加载我的自动编号DDNUMB我已经尝试了工具加载应用程序。我在Autocad 2005中使用了lisp,现在在2011年尝试使用它。我做错了什么?
  1. ;DDNUMB.LSP for release 15
  2. ;Auto numbers text strings.
  3. ;Written by: S. Restmeyer 3/01
  4. ;;;
  5. ;;;----------------------ERROR FUNCTION----------------------------
  6. ;;;
  7. (DEFUN ERR (S)                                ;if an error (such as CTRL-C)
  8.                                 ;occurs while this command is active...
  9. (if (not (member s '("console break" "Function cancelled")))
  10.    (princ (strcat "\nError: " s))
  11. )
  12. (command "_.UNDO" "_E")                ;end any outstanding UNDO group
  13. (setvar "cmdecho" cmd)                ;restore saved mode
  14. (setq *error* olderr)
  15. (princ)
  16. )
  17. ;;;---------------------- MAIN PROGRAM ----------------------------
  18. ;;;
  19. (defun C:DDNUMB (/ CMD dcl_id1 olderr)
  20. (setq        olderr        *error*
  21. *error*        err
  22. )
  23. (SETQ CMD (GETVAR "CMDECHO"))
  24. (command "_.UNDO" "_G")
  25. (setvar "cmdecho" 0)
  26. (defun set_replace ()
  27.    (cond
  28.      ((= (get_tile "do_replace") "0")
  29.       (set_tile "sort_type" "0")
  30.       (mode_tile "sort_type" 1)
  31.       (set_tile "start_no" " ")
  32.       (mode_tile "start_no" 1)
  33.       (set_tile "txt_inc" " ")
  34.       (mode_tile "txt_inc" 1)
  35.      )
  36.      )
  37.    (cond
  38.      ((= (get_tile "do_replace") "1")
  39.       (mode_tile "sort_type" 0)
  40.       (mode_tile "start_no" 0)
  41.       (mode_tile "txt_inc" 0)
  42.       (if sort_type
  43.    (set_tile "sort_type" sort_type)
  44.    (set_tile "sort_type" "0")
  45.    )
  46.       (if txt_inc
  47.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  48.    (set_tile "txt_inc" "1")
  49.    )
  50.       (if start_no
  51.    (set_tile "start_no" (rtos start_no 2 0))
  52.    (set_tile "start_no" "1")
  53.    )
  54.      )
  55.      )
  56.    )
  57. (defun my_help ()
  58.    (setq file_name (findfile "autonumb.pdf"))
  59.    (startapp "acrobat.exe" (strcat """ file_name """))
  60.    )
  61.       (defun get_data ()
  62. (setq suffix (get_tile "suffix"))
  63. (setq prefix (get_tile "prefix"))
  64. (setq start_no (atoi (get_tile "start_no")))
  65. (setq txt_inc (atoi (get_tile "txt_inc")))
  66. (setq sort_type (get_tile "sort_type"))
  67. (setq do_replace (get_tile "do_replace"))
  68.      )
  69. ;;;-------------------------------------------------------------------
  70. ;;;-----------THIS SECTION RETRIEVES USER INPUT INFORMATION------------
  71. ;;;
  72.     (setq dcl_id1 (load_dialog "autonumb.dcl"))
  73.      (if (not (new_dialog "ddstart" dcl_id1))
  74. (exit)
  75.      )
  76. (setq sort_list '("Selection" "Top-Bottom" "Left-Right" "Bottom-Top" "Right-Left"))
  77.         (start_list "sort_type")
  78. (mapcar 'add_list sort_list)
  79.         (end_list)
  80. (if sort_type
  81.    (set_tile "sort_type" sort_type)
  82.    (set_tile "sort_type" "0")
  83.    )
  84. (if prefix
  85.    (set_tile "prefix" prefix)
  86.    )
  87. (if suffix
  88.    (set_tile "suffix" suffix)
  89.    )
  90. (if start_no
  91.    (set_tile "start_no" (rtos start_no 2 0))
  92.    (set_tile "start_no" "1")
  93.    )
  94. (if txt_inc
  95.    (set_tile "txt_inc" (rtos txt_inc 2 0))
  96.    (set_tile "txt_inc" "1")
  97.    )
  98.    (action_tile "do_replace" "(set_replace)")
  99.    (action_tile "numb_hlp" "(my_help)")
  100.    (action_tile "accept" "(setq start_ok T)(get_data)(done_dialog 1)")
  101.    (action_tile "cancel" "(setq start_ok nil)(done_dialog 0)")
  102.    (start_dialog)
  103.      (unload_dialog dcl_id1)
  104. ;;;-------------------------------------------------------------------
  105. ;;;---------------THIS SECTION MODIFIES SELECTED TEXT-----------------
  106. ;;;
  107. (defun get_txt (/ sset sset1 sset2 sset3 test num llen temp old)
  108.    (setq sset (ssget '((0 . "TEXT"))))
  109.    (setq num 0)
  110.   (if (= do_replace "1")
  111.     (progn
  112.    (cond
  113.      ((= sort_type "0")
  114.     (while (< num (sslength sset))
  115.       (setq temp (entget (ssname sset num)))
  116.       (setq old (assoc 1 temp))
  117.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  118.            (setq temp (subst new old temp))
  119.            (entmod temp)
  120.       (setq start_no (+ start_no txt_inc))
  121.       (setq num (+ num 1))
  122.       )
  123.       )
  124.      ((= sort_type "1")
  125.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  126.       (setq sset1 (list temp))
  127.       (setq num (+ num 1))
  128.     (while (< num (sslength sset))
  129.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  130.       (setq sset1 (append sset1 (list temp)))
  131.       (setq num (+ num 1))
  132.       )
  133.       (setq sset2 (list ""))
  134.       (while (< (- (length sset2) 1) (sslength sset))
  135.     (setq temp (apply 'max sset1))
  136.     (setq sset2 (append sset2 (list temp)))
  137.     (setq sset3 (list ""))
  138.     (setq num (- (length sset1) 1))
  139.      (while (> num -1)
  140. (setq test (nth num sset1))
  141. (if (not (member test sset2))
  142.   (setq sset3 (append sset3 (list test)))
  143.   )
  144. (setq num (- num 1))
  145. )
  146.       (setq sset1 (cdr sset3))
  147.      )
  148.       (setq sset2 (cdr sset2))
  149.       (setq llen 0)
  150.       (while (< llen (length sset2))
  151. (setq test (nth llen sset2))
  152. (setq num 0)
  153. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  154.    (setq num (+ num 1))
  155.    )
  156. (setq temp (entget (ssname sset num)))
  157.       (setq old (assoc 1 temp))
  158.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  159.            (setq temp (subst new old temp))
  160.            (entmod temp)
  161.       (setq start_no (+ start_no txt_inc))
  162.       (setq llen (+ llen 1))
  163.       )
  164.       )
  165.      ((= sort_type "2")
  166.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  167.       (setq sset1 (list temp))
  168.       (setq num (+ num 1))
  169.     (while (< num (sslength sset))
  170.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  171.       (setq sset1 (append sset1 (list temp)))
  172.       (setq num (+ num 1))
  173.       )
  174.       (setq sset2 (list ""))
  175.       (while (< (- (length sset2) 1) (sslength sset))
  176.     (setq temp (apply 'max sset1))
  177.     (setq sset2 (append sset2 (list temp)))
  178.     (setq sset3 (list ""))
  179.     (setq num (- (length sset1) 1))
  180.      (while (> num -1)
  181. (setq test (nth num sset1))
  182. (if (not (member test sset2))
  183.   (setq sset3 (append sset3 (list test)))
  184.   )
  185. (setq num (- num 1))
  186. )
  187.       (setq sset1 (cdr sset3))
  188.      )
  189.       (setq sset2 (cdr sset2))
  190.      (setq llen (- (length sset2) 1))
  191.       (while (> llen -1)
  192. (setq test (nth llen sset2))
  193. (setq num 0)
  194. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  195.    (setq num (+ num 1))
  196.    )
  197. (setq temp (entget (ssname sset num)))
  198.       (setq old (assoc 1 temp))
  199.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  200.            (setq temp (subst new old temp))
  201.            (entmod temp)
  202.       (setq start_no (+ start_no txt_inc))
  203.       (setq llen (- llen 1))
  204.       )
  205.       )
  206.      ((= sort_type "3")
  207.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  208.       (setq sset1 (list temp))
  209.       (setq num (+ num 1))
  210.     (while (< num (sslength sset))
  211.       (setq temp (caddr (assoc 10 (entget (ssname sset num)))))
  212.       (setq sset1 (append sset1 (list temp)))
  213.       (setq num (+ num 1))
  214.       )
  215.       (setq sset2 (list ""))
  216.       (while (< (- (length sset2) 1) (sslength sset))
  217.     (setq temp (apply 'max sset1))
  218.     (setq sset2 (append sset2 (list temp)))
  219.     (setq sset3 (list ""))
  220.     (setq num (- (length sset1) 1))
  221.      (while (> num -1)
  222. (setq test (nth num sset1))
  223. (if (not (member test sset2))
  224.   (setq sset3 (append sset3 (list test)))
  225.   )
  226. (setq num (- num 1))
  227. )
  228.       (setq sset1 (cdr sset3))
  229.      )
  230.       (setq sset2 (cdr sset2))
  231.       (setq llen (- (length sset2) 1))
  232.       (while (> llen -1)
  233. (setq test (nth llen sset2))
  234. (setq num 0)
  235. (while (not (= (caddr (assoc 10 (entget (ssname sset num)))) test))
  236.    (setq num (+ num 1))
  237.    )
  238. (setq temp (entget (ssname sset num)))
  239.       (setq old (assoc 1 temp))
  240.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  241.            (setq temp (subst new old temp))
  242.            (entmod temp)
  243.       (setq start_no (+ start_no txt_inc))
  244.       (setq llen (- llen 1))
  245.       )
  246.       )
  247.      ((= sort_type "4")
  248.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  249.       (setq sset1 (list temp))
  250.       (setq num (+ num 1))
  251.     (while (< num (sslength sset))
  252.       (setq temp (cadr (assoc 10 (entget (ssname sset num)))))
  253.       (setq sset1 (append sset1 (list temp)))
  254.       (setq num (+ num 1))
  255.       )
  256.       (setq sset2 (list ""))
  257.       (while (< (- (length sset2) 1) (sslength sset))
  258.     (setq temp (apply 'max sset1))
  259.     (setq sset2 (append sset2 (list temp)))
  260.     (setq sset3 (list ""))
  261.     (setq num (- (length sset1) 1))
  262.      (while (> num -1)
  263. (setq test (nth num sset1))
  264. (if (not (member test sset2))
  265.   (setq sset3 (append sset3 (list test)))
  266.   )
  267. (setq num (- num 1))
  268. )
  269.       (setq sset1 (cdr sset3))
  270.      )
  271.       (setq sset2 (cdr sset2))
  272.       (setq llen 0)
  273.       (while (< llen (length sset2))
  274. (setq test (nth llen sset2))
  275. (setq num 0)
  276. (while (not (= (cadr (assoc 10 (entget (ssname sset num)))) test))
  277.    (setq num (+ num 1))
  278.    )
  279. (setq temp (entget (ssname sset num)))
  280.       (setq old (assoc 1 temp))
  281.   (setq new (cons 1 (strcat prefix (rtos start_no 2 0) suffix)))
  282.            (setq temp (subst new old temp))
  283.            (entmod temp)
  284.       (setq start_no (+ start_no txt_inc))
  285.       (setq llen (+ llen 1))
  286.       )
  287.       )
  288.      )
  289.    )
  290.     (progn
  291.       (setq start_no nil)
  292.       (setq txt_inc nil)
  293.      (while (< num (sslength sset))
  294.       (setq temp (entget (ssname sset num)))
  295.       (setq old (assoc 1 temp))
  296.   (setq new (cons 1 (strcat  prefix (cdr old) suffix)))
  297.            (setq temp (subst new old temp))
  298.            (entmod temp)
  299.       (setq num (+ num 1))
  300.       )
  301.       )
  302.     )
  303.    )
  304.   (if start_ok
  305.    (get_txt)
  306. )
  307.   (setq *error* olderr)
  308. (setvar "cmdecho" cmd)
  309.    )
回复

使用道具 举报

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 09:30:13 | 显示全部楼层
添加到文件中的lisp。我该怎么办?DCL文件
 
  1. //----------------------------------------------------------------------------
  2. //
  3. // Corresponding dialogue for DDNUMB.LSP
  4. //
  5. //----------------------------------------------------------------------------
  6. //dcl_settings : default_dcl_settings { audit_level = 3; }
  7. ddstart : dialog {
  8.     label = "Auto Number";
  9. initial_focus = "prefix";
  10.         : row {
  11.         : boxed_column {
  12.                 fixed_width = true;
  13.                 label = "&Prefix";
  14.                         : edit_box {
  15.                                 key = "prefix";
  16.                                 mnemonic = "P";
  17.                                 fixed_width = true;
  18.                                    }
  19.                         }
  20.         : boxed_column {
  21.                 fixed_width = true;
  22.                 label = "Start &No";
  23.                         : edit_box {
  24.                                 key = "start_no";
  25.                                 mnemonic = "N";
  26.                                 fixed_width = true;
  27.                                    }
  28.                         }
  29.         : boxed_column {
  30.                 fixed_width = true;
  31.                 label = "&Suffix";
  32.                         : edit_box {
  33.                                 key = "suffix";
  34.                                 mnemonic = "S";
  35.                                 fixed_width = true;
  36.                                    }
  37.                         }
  38.                 }
  39. : row {
  40.         : boxed_column {
  41.                 fixed_width = true;
  42.                 label = "&Increment";
  43.                         : edit_box {
  44.                                 key = "txt_inc";
  45.                                 mnemonic = "I";
  46.                                 fixed_width = true;
  47.                                    }
  48.                         }
  49.         : boxed_column {
  50.                 fixed_width = true;
  51.                 label = "Sort &By";
  52.                         : popup_list {
  53.                                 key = "sort_type";
  54.                                 width = 13;
  55.                                 fixed_width = true;
  56.                                 }
  57.                         }
  58.         : toggle {
  59.                 label = "Replace";
  60.                 key = "do_replace";
  61.                 value = 1;
  62.                 }
  63.         }
  64.         spacer_1;
  65.         : row {
  66. ok_cancel;
  67.                 : button {
  68.                         key = "numb_hlp";
  69.                         label = "Help";
  70.                         mnemonic = "H";
  71.                         }
  72.                 }
  73.         }
回复

使用道具 举报

42

主题

104

帖子

69

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
203
发表于 2022-7-6 09:34:10 | 显示全部楼层
我想出来了加载DCL文件:
C: \程序文件\ AutoCAD版本\支持
回复

使用道具 举报

22

主题

326

帖子

185

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
243
发表于 2022-7-6 09:41:31 | 显示全部楼层
但是为什么你发了两次?
http://www.cadtutor.net/forum/showthread.php?63198-DDNUB请帮忙-加载错误
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 09:48:18 | 显示全部楼层
我组合了你的线程。请只发布同一个问题一次。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:11 , Processed in 1.390048 second(s), 72 queries .

© 2020-2025 乐筑天下

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