乐筑天下

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

[编程交流] 绘制lisp和DCL

[复制链接]

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:15:03 | 显示全部楼层 |阅读模式
大家好,
 
我一直在努力做一些我自己的命令,使我的生活更轻松一点,其中大部分都是非常基本的。其中之一是使用不同的方法自动设置打印到PDF。ctb文件和图纸尺寸等。这些取决于客户和图纸类型。
 
我已经为每一个客户编写了一个LISP,它们都很有效,我现在正在尝试使用一个对话框,该对话框有一些选项,例如它是哪一个客户机,以及它是否需要以彩色打印。
 
但是,我不确定如何从对话框中获取信息以运行正确的打印设置。我的想法是得到各个选项,然后将它们串在一起,并使用我已经做过的lisp例程打印出来。下面是我到目前为止提出的,我还需要添加更多选项,我很确定我在这方面的尝试将非常可悲,并且充满了错误,但是如果有人能给我一个正确的方向,我将不胜感激。
 
此外,如果有人可以帮助我,我也想尝试单选按钮,而不仅仅是列表,所以如果有人可以给任何建议,以及我将不胜感激。
 
这是DCL
 
  1. CarlosPlot : dialog {                                //dialog name
  2.      label = "Print to PDF" ;                //give it a label
  3. : list_box {
  4.         label = "Client"
  5.         key = "ClientSelection"
  6.         height = 12;
  7.         allow_accept = false ;
  8. }
  9. : list_box {
  10.         label = "Colour Style"
  11.         key = "ColourSelection"
  12.         height = 12;
  13.         allow_accept = false ;
  14. }
  15. : list_box {
  16.         label = "Sheet Size"
  17.         key = "SizeSelection"
  18.         height = 12;
  19.         allow_accept = false ;
  20. }
  21. : list_box {
  22.         label = "Drawing Style"
  23.         key = "StyleSelection"
  24.         height = 12;
  25.         allow_accept = false ;
  26. }
  27. ok_cancel ;
  28. :text_part {
  29. label = "Designed and Created by";
  30. }
  31. :text_part {
  32. label = "Carl Earles";
  33. }
  34. }

 
这是Lisp程序
 
前4个函数是我所做的绘图例程,我知道它们是有效的。
 
  1. (defun A Colour()
  2. (progn
  3. (setq CurrentDWG (strcat  (vl-filename-base (getvar "dwgname"))  ""))
  4. (setq NewFile (strcat "C:\\Users\\A\\Documents\\PDF's\\A\" CurrentDWG))
  5. (command "vports" "s" "a" "all" "" )
  6. (command "plot" "y" "" "DWG to PDF.pc3" "ISO full bleed A1 (841.00 x 594.00 MM)" "Millimeters" "Landscape" "No" "Extents" "1:1" "C" "Yes" "A - Colour.ctb" "yes" "no" "no" "no" NewFile "no" "yes")
  7. )
  8. )
  9. (defun A Mono()
  10. (progn
  11. (setq CurrentDWG (strcat  (vl-filename-base (getvar "dwgname"))  ""))
  12. (setq NewFile (strcat "C:\\Users\\A\\Documents\\PDF's\\A\" CurrentDWG))
  13. (command "vports" "s" "a" "all" "" )
  14. (command "plot" "y" "" "DWG to PDF.pc3" "ISO full bleed A1 (841.00 x 594.00 MM)" "Millimeters" "Landscape" "No" "Extents" "1:1" "C" "Yes" "A Mono.ctb" "yes" "no" "no" "no" NewFile "no" "yes")
  15. )
  16. )
  17. (defun B Colour()
  18. (progn
  19. (setq CurrentDWG (strcat  (vl-filename-base (getvar "dwgname"))  ""))
  20. (setq NewFile (strcat "C:\\Users\\A\\Documents\\PDF's\\B\" CurrentDWG))
  21. (command "vports" "s" "a" "all" "" )
  22. (command "plot" "y" "" "DWG to PDF.pc3" "ISO full bleed A1 (841.00 x 594.00 MM)" "Millimeters" "Landscape" "No" "Extents" "1:1" "C" "Yes" "B - Colour.ctb" "yes" "no" "no" "no" NewFile "no" "yes")
  23. )
  24. )
  25. (defun B Mono()
  26. (progn
  27. (setq CurrentDWG (strcat  (vl-filename-base (getvar "dwgname"))  ""))
  28. (setq NewFile (strcat "C:\\Users\\A\\Documents\\PDF's\\B\" CurrentDWG))
  29. (command "vports" "s" "a" "all" "" )
  30. (command "plot" "y" "" "DWG to PDF.pc3" "ISO full bleed A1 (841.00 x 594.00 MM)" "Millimeters" "Landscape" "No" "Extents" "1:1" "C" "Yes" "B Mono.ctb" "yes" "no" "no" "no" NewFile "no" "yes")
  31. )
  32. )
  33. ;;; Define the doList code for later use in command
  34. (defun doList    (a)
  35. (cond
  36. ;;;
  37. ;;; - - - If the options selected by the used is equal to A Colour
  38. ;;;
  39.    ((= a 1) (A Colour))
  40. ;;;
  41. ;;; - - - If the options selected by the used is equal to A Mono
  42. ;;;
  43.    ((= a 2) (A Mono))
  44. )
  45. )
  46. ;;;
  47. ;;; - - - If the options selected by the used is equal to B Colour
  48. ;;;
  49.    ((= a 3) (B Colour))
  50. )
  51. )
  52. ;;;
  53. ;;; - - - If the options selected by the used is equal to B Mono
  54. ;;;
  55.    ((= a 4) (B Mono))
  56. )
  57. )
  58. ;;;
  59. ;;; - - - Command
  60. ;;;
  61. (defun C:CarlosPlot ( / dcl_id server_path drv)
  62. (setq CLIENTSELECTION '("A" "B" ); list of Clients
  63. )
  64. (setq COLOURSELECTION '("Colour" "Mono"); list of Colour Styles
  65. )
  66. (setq dialogshow T)                        ;set flag
  67. (setq dcl_id (load_dialog "CarlosPlot.dcl"))        ;initialise dialog box
  68. (if (not                                        ;check dcl exists
  69. (new_dialog "CarlosPlot" dcl_id)        ;load into memory
  70. );not
  71. (setq dialogshow nil)                ;if not exit
  72. );if
  73. (if dialogshow                                ;if dialog
  74. (progn                                          ;continue with programme
  75. (start_list "ClientSelection")                        ;start list box
  76. (mapcar 'add_list CLIENTSELECTION)        ;add names from list
  77. (end_list)                                ;end list box
  78. (start_list "ColourSelection")                        ;start list box
  79. (mapcar 'add_list COLOURSELECTION)        ;add names from list
  80. (end_list)                                ;end list box
  81. (action_tile                                       
  82.    "cancel"                                ;if cancel selected
  83.    "(done_dialog) (setq userclick1 nil)"                ;close dialog, set flag
  84. );action tile
  85. (action_tile
  86.    "accept"                                ;if OK or double click
  87. (strcat
  88. "(progn (setq CLIENT (atof (get_tile "ClientSelection")))"                ;get Client Selection
  89. "(done_dialog) (setq userclick1 T))"                                ;close dialog and set flag
  90. "(progn (setq COLOUR (atof (get_tile "ColourSelection")))"        ;get Colour Selection
  91. "(done_dialog) (setq userclick1 T))"                                ;close dialog and set flag
  92. );strcat
  93. );action tile
  94. );progn
  95. );if
  96. (setq drv (start_dialog))                        ;display dialog
  97. (unload_dialog dcl_id)                ;unload dialog
  98. (if userclick1
  99. (progn
  100.         (setq CLIENT (nth CLIENT CLIENTSELECTION))                        ;retrieve Client from list
  101.         (setq COLOUR (nth COLOUR COLOURSELECTION))                ;retrieve Colour from list
  102. (cond
  103. ((=drv A Colour)(doList 1))
  104. ((=drv A Mono)(doList 2))
  105. ((=drv B Colour)(doList 3))
  106. ((=drv B Mono)(doList 4))
  107.   );cond
  108. );progn
  109. );if
  110. ;;;- - - Supress the last echo for a clean exit
  111. (princ)
  112. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:24:02 | 显示全部楼层
通过这种方式将列表传递给dcl,您可以拥有它们的所有名称,并返回与COND一起使用的缩写名称,然后运行lisp,您只需要1个defun,将一些答案替换为变量(setq colctb colortable),键=“colortable”从dcl返回。非常肯定www.Lee-mac。com有一个列表dcl示例。
 
  1. part of above
  2. "Yes" "B - Colour.ctb" "yes"
  3. "Yes" colctb "yes"
  4. "DWG to PDF.pc3" is now dwgto so can become printer as well.
  5. (command "plot" "y" "" DWGto PAPERSZ "Millimeters" "Landscape" "No" "Extents" scale "C" "Yes" COLCTB ""Y" "n" "n" "n" dwgname "N" "y")
  6. note I have added dwgname this for us is read from the dwg details and save pdf to a specific directory.
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:26:35 | 显示全部楼层
谢谢比格尔的建议,我已经研究过了,并找到了一个例子。试着去理解它,所以现在这是一项正在进行的工作。然而,我需要更多的帮助,当我打印PDF并保存它时,我需要将版本添加到文件名的末尾。这些信息存储在一个名为CHECK PRINT-A1的块中,标记名为PRINT\u REF。我只是不知道如何获取这些信息,所以我可以设置它,然后将其添加到文件名的末尾。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 17:32:03 | 显示全部楼层
嗨,厄尔齐,
 
 
也许我的wai tai util可以帮你。
 
 
  1. ;--------------------------------------------- Attribute Utilities ----------------------------------------------------
  2. (defun wai (b a v)
  3. (setq a (strcase a) b (ent->vla b))
  4. (vl-some '(lambda (x)(if (= a (strcase (vla-get-tagstring x)))(progn (vla-put-textstring x v) v)))
  5.        (vlax-invoke b 'getattributes)))
  6. (defun tai ( blk tag )
  7. (setq tag (strcase tag) blk (ent->vla blk))
  8. (if blk (vl-some '(lambda (x) (if (= tag (strcase (vla-get-tagstring x))) (vla-get-textstring x)))
  9.     (vlax-invoke blk 'getattributes))))
  10. (defun ent->vla ( e )
  11. (cond ((= (type e) 'VLA-OBJECT) e)
  12. ((= (type e) 'ENAME)(vlax-ename->vla-object e))
  13. ((and (= (type e) 'STR) (tblsearch "block" e))
  14. (ent->vla (ssname (ssget "x" (list (cons 0 "INSERT")(cons 2 e))) 0)))    (t nil)))

wai代表“wijzig attribute inhoud”(更改属性值)en tai代表“toon attribute inhoud”(显示属性值)
 
 
这两个例程都通过ent->vla函数接受ename、vla name of string作为块名。
 
 
在你的情况下(tai“CHECK PRINT-A1”“PRINT\u REF”)应该可以做到这一点(我希望)
 
 
gr.Rlx
 
 
p、 有关属性处理的更多信息,请参见:http://www.lee-mac.com/attributefunctions.html
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:35:05 | 显示全部楼层
谢谢rlx,它工作得很好!!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:41:17 | 显示全部楼层
plotpdf lisp向pdf添加布局名称的示例,第二个是从所有布局的标题栏中检索属性值。需要getval。lsp一个不断变化的自动DCL例程。
绘图PDF。lsp
getval。lsp
发布用于施工。lsp
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:43:43 | 显示全部楼层
谢谢大家,我终于开始有所进展了,但我再次陷入困境,我想定义可以选择的不同情节。然而,当你从对话框中选择OK时,它应该运行这个命令,但它告诉我它是未知的,这真的很烦人。
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;;;;                                                                                ;;;;;
  3. ;;;;;        DEFINES ALL THE DIFFERENT PLOT SETTINGS FOR                                ;;;;;
  4. ;;;;;        A DRAWINGS TO BE PRINTED TO PDF                                 ;;;;;
  5. ;;;;;                                                                                ;;;;;
  6. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7. (defun C:AA12DMONOCHECK_PRINT(CurrentDWG UName ARev ACP)
  8. (setq CurrentDWG (strcat  (vl-filename-base (getvar "dwgname"))  ""))                                        ;;;Gets the current drawing name
  9. (setq UName (getenv "UserName"))                                                                        ;;;Gets the username
  10. (setq ARev (showattvalue "CHECK PRINT - A1" "PRINT_REF"))                                                ;;;Gets the revision from A Drawings.
  11. (setq ACP (strcat "C:\\Users\" UName "\\Documents\\PDF's\\A\" CurrentDWG "_" ARev))                        ;;;Sets the path to save to for a A Check Print
  12. (command "vports" "s" "a" "all" "" )
  13. (command "plot" "y" "" "DWG to PDF.pc3" "ISO full bleed A0 (841.00 x 1189.00 MM)" "Millimeters" "Landscape" "No" "Extents" "1:1" "C" "Yes" "A - Mono.ctb" "yes" "no" "no" "no" ACP "no" "yes")
  14. )
  15. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  18. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  19. ;;;;;                                                                                ;;;;;
  20. ;;;;;        BELOW ARE THE COMMANDS THAT SHOW THE ATTRIBUTE AND ALSO                ;;;;;
  21. ;;;;;        CHANGE THE ATTRIBUTE VALUE IF REQUIRED (FROM rlx)                        ;;;;;
  22. ;;;;;                                                                                ;;;;;
  23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  24. (defun changeattvalue (b a v)
  25. (setq a (strcase a) b (ent->vla b))
  26. (vl-some '(lambda (x)(if (= a (strcase (vla-get-tagstring x)))(progn (vla-put-textstring x v) v)))
  27.        (vlax-invoke b 'getattributes)))
  28. (defun showattvalue ( blk tag )
  29. (setq tag (strcase tag) blk (ent->vla blk))
  30. (if blk (vl-some '(lambda (x) (if (= tag (strcase (vla-get-tagstring x))) (vla-get-textstring x)))
  31.     (vlax-invoke blk 'getattributes))))
  32. (defun ent->vla ( e )
  33. (cond ((= (type e) 'VLA-OBJECT) e)
  34. ((= (type e) 'ENAME)(vlax-ename->vla-object e))
  35. ((and (= (type e) 'STR) (tblsearch "block" e))
  36. (ent->vla (ssname (ssget "x" (list (cons 0 "INSERT")(cons 2 e))) 0)))    (t nil)))
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  41. ;;;;;                                                                                ;;;;;
  42. ;;;;;        LEE MACKS LIST DEPENDENCY DEFINED HERE AND USED LATER                ;;;;;
  43. ;;;;;        IN THE MAIN PLOT COMMAND                                                ;;;;;
  44. ;;;;;                                                                                ;;;;;
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  46. ;; DCL List-Tile Dependency  -  Lee Mac
  47. ;; Configures action_tile statements for the list of keys to enabled dependency between the DCL tiles.
  48. ;; key     - [lst] List of DCL tile keys in order of dependency
  49. ;; lst-sym - [sym] Quoted variable containing list data
  50. ;; rtn-sym - [sym] Quoted variable containing initial selection indexes
  51. (defun LM:dcld:action ( key lst-sym rtn-sym )
  52.    
  53.    (defun LM:dcld:addlist ( key lst )
  54.        (start_list key)
  55.        (foreach itm lst (add_list itm))
  56.        (end_list)
  57.    )
  58.    (defun LM:dcld:getlists ( idx lst )
  59.        (if (cdr idx)
  60.            (cons (mapcar 'car lst) (LM:dcld:getlists (cdr idx) (cdr (nth (car idx) lst))))
  61.            lst
  62.        )
  63.    )
  64.    (defun LM:substnth ( itm idx lst )
  65.        (if lst
  66.            (if (zerop idx)
  67.                (cons itm (cdr lst))
  68.                (cons (car lst) (LM:substnth itm (1- idx) (cdr lst)))
  69.            )
  70.        )
  71.    )
  72.    (defun LM:dcld:actions ( key lst-sym rtn-sym lvl / fun )
  73.        (setq fun
  74.            (if (cdr key)
  75.                (list 'lambda '( val lst / tmp )
  76.                    (list 'setq  rtn-sym  (list 'LM:substnth '(atoi val) lvl rtn-sym)
  77.                                'tmp      (list 'LM:dcld:getlists rtn-sym 'lst)
  78.                    )
  79.                    (list 'LM:dcld:addlist (cadr key) (list 'nth (1+ lvl) 'tmp))
  80.                    (list 'if (list '<= (list 'length (list 'nth (1+ lvl) 'tmp)) (list 'nth (1+ lvl) rtn-sym))
  81.                        (list 'setq rtn-sym (list 'LM:substnth 0 (1+ lvl) rtn-sym))
  82.                    )
  83.                    (list
  84.                        (LM:dcld:actions (cdr key) lst-sym rtn-sym (1+ lvl))
  85.                        (list 'set_tile (cadr key) (list 'itoa (list 'nth (1+ lvl) rtn-sym))) 'lst
  86.                    )
  87.                )
  88.                (list 'lambda '( val lst )
  89.                    (list 'setq rtn-sym (list 'LM:substnth '(atoi val) lvl rtn-sym))
  90.                )
  91.            )
  92.        )
  93.        (action_tile (car key) (vl-prin1-to-string (list fun '$value lst-sym)))
  94.        fun
  95.    )
  96.    (mapcar 'LM:dcld:addlist key (LM:dcld:getlists (eval rtn-sym) (eval lst-sym)))
  97.    (   (eval (LM:dcld:actions key lst-sym rtn-sym 0))
  98.        (set_tile (car key) (itoa (car (eval rtn-sym))))
  99.        (eval lst-sym)
  100.    )
  101.    (princ)
  102. )
  103. ;; DCL List-Tile Dependency  -  Get Items  -  Lee Mac
  104. ;; Returns a list of the items selected from each dependent list tile.
  105. ;; idx - [lst] List of selection indexes
  106. ;; lst - [lst] List data
  107. (defun LM:dcld:getitems ( idx lst / tmp )
  108.    (if (cdr idx)
  109.        (cons (car (setq tmp (nth (car idx) lst))) (LM:dcld:getitems (cdr idx) (cdr tmp)))
  110.        (list (nth (car idx) (car lst)))
  111.    )
  112. )
  113. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  114. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  115. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  116. (defun c:PDFPlot ( / *error* dch dcl des lst rtn )
  117.    (defun *error* ( msg )
  118.        (if (= 'file (type des))
  119.            (close des)
  120.        )
  121.        (if (< 0 dch)
  122.            (unload_dialog dch)
  123.        )
  124.        (if (and (= 'str (type dcl)) (findfile dcl))
  125.            (vl-file-delete dcl)
  126.        )
  127.        (if (and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")))
  128.            (princ (strcat "\nError: " msg))
  129.        )
  130.        (princ)
  131.    )
  132. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  133. ;;;;;                                                                                ;;;;;
  134. ;;;;;                SETS THE LISTS TO BE DISPLAYED IN THE WINDOW                        ;;;;;
  135. ;;;;;                                                                                ;;;;;
  136. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  137.    (setq lst
  138.       '(
  139.            (
  140.                "A"
  141.                (
  142.                    "A0"
  143.                    (
  144.                        "2D"
  145.                        (
  146.                            "Mono"
  147.                 ( "Check_Print"
  148.                   "Issue"
  149.                 )
  150.                        )
  151.                        (
  152.         "Colour"
  153.                 ( "Check_Print"
  154.                   "Issue"
  155.                 )
  156.                        )
  157.                        (
  158.                            "Significant Hazard"
  159.                 ( "Check_Print"
  160.                   "Issue"
  161.                 )
  162.                        )
  163.                    )
  164.                    (
  165.                        "3D"
  166.                        (
  167.                            "Mono"
  168.                 ( "Check_Print"
  169.                   "Issue"
  170.                 )
  171.                        )
  172.                        (
  173.         "Colour"
  174.                 ( "Check_Print"
  175.                   "Issue"
  176.                 )
  177.                        )
  178.                    )
  179.                )                (
  180.                    "A1"
  181.                    (
  182.                        "2D"
  183.                        (
  184.                            "Mono"
  185.                 ( "Check_Print"
  186.                   "Issue"
  187.                 )
  188.                        )
  189.                        (
  190.         "Colour"
  191.                 ( "Check_Print"
  192.                   "Issue"
  193.                 )
  194.                        )
  195.                        (
  196.                            "Significant Hazard"
  197.                 ( "Check_Print"
  198.                   "Issue"
  199.                 )
  200.                        )
  201.                    )
  202.                    (
  203.                        "3D"
  204.                        (
  205.                            "Mono"
  206.                 ( "Check_Print"
  207.                   "Issue"
  208.                 )
  209.                        )
  210.                        (
  211.         "Colour"
  212.                 ( "Check_Print"
  213.                   "Issue"
  214.                 )
  215.                        )
  216.                    )
  217.                )                (
  218.                    "A3"
  219.                    (
  220.                        "2D"
  221.                         (
  222.                            "Mono"
  223.                 ( "Check_Print"
  224.                   "Issue"
  225.                 )
  226.                        )
  227.                        (
  228.         "Colour"
  229.                 ( "Check_Print"
  230.                   "Issue"
  231.                 )
  232.                        )
  233.                        (
  234.                            "Significant Hazard"
  235.                 ( "Check_Print"
  236.                   "Issue"
  237.                 )
  238.                        )
  239.                    )
  240.                    (
  241.                        "3D"
  242.                        (
  243.                            "Mono"
  244.                 ( "Check_Print"
  245.                   "Issue"
  246.                 )
  247.                        )
  248.                        (
  249.         "Colour"
  250.                 ( "Check_Print"
  251.                   "Issue"
  252.                 )
  253.                        )
  254.                    )
  255.                )
  256.            )
  257.            (
  258.                "B"
  259.                (
  260.                    "A0"
  261.                    (
  262.                        "2D"
  263.                         (
  264.                            "Mono"
  265.                 ( "Check_Print"
  266.                   "Issue"
  267.                 )
  268.                        )
  269.                        (
  270.         "Colour"
  271.                 ( "Check_Print"
  272.                   "Issue"
  273.                 )
  274.                        )
  275.                        (
  276.                            "Significant Hazard"
  277.                 ( "Check_Print"
  278.                   "Issue"
  279.                 )
  280.                        )
  281.                    )
  282.                    (
  283.                        "3D"
  284.                        (
  285.                            "Mono"
  286.                 ( "Check_Print"
  287.                   "Issue"
  288.                 )
  289.                        )
  290.                        (
  291.         "Colour"
  292.                 ( "Check_Print"
  293.                   "Issue"
  294.                 )
  295.                        )
  296.                    )
  297.                )                (
  298.                    "A1"
  299.                    (
  300.                        "2D"
  301.                         (
  302.                            "Mono"
  303.                 ( "Check_Print"
  304.                   "Issue"
  305.                 )
  306.                        )
  307.                        (
  308.         "Colour"
  309.                 ( "Check_Print"
  310.                   "Issue"
  311.                 )
  312.                        )
  313.                        (
  314.                            "Significant Hazard"
  315.                 ( "Check_Print"
  316.                   "Issue"
  317.                 )
  318.                        )
  319.                    )
  320.                    (
  321.                        "3D"
  322.                        (
  323.                            "Mono"
  324.                 ( "Check_Print"
  325.                   "Issue"
  326.                 )
  327.                        )
  328.                        (
  329.         "Colour"
  330.                 ( "Check_Print"
  331.                   "Issue"
  332.                 )
  333.                        )
  334.                    )
  335.                )                (
  336.                    "A3"
  337.                    (
  338.                        "2D"
  339.                         (
  340.                            "Mono"
  341.                 ( "Check_Print"
  342.                   "Issue"
  343.                 )
  344.                        )
  345.                        (
  346.         "Colour"
  347.                 ( "Check_Print"
  348.                   "Issue"
  349.                 )
  350.                        )
  351.                        (
  352.                            "Significant Hazard"
  353.                 ( "Check_Print"
  354.                   "Issue"
  355.                 )
  356.                        )
  357.                    )
  358.                    (
  359.                        "3D"
  360.                        (
  361.                            "Mono"
  362.                 ( "Check_Print"
  363.                   "Issue"
  364.                 )
  365.                        )
  366.                        (
  367.         "Colour"
  368.                 ( "Check_Print"
  369.                   "Issue"
  370.                 )
  371.                        )
  372.                    )
  373.                )
  374.            )
  375.            (
  376.                "C"
  377.                (
  378.                    "A0"
  379.                    (
  380.                        "2D"
  381.                         (
  382.                            "Mono"
  383.                 ( "Check_Print"
  384.                   "Issue"
  385.                 )
  386.                        )
  387.                        (
  388.         "Colour"
  389.                 ( "Check_Print"
  390.                   "Issue"
  391.                 )
  392.                        )
  393.                        (
  394.                            "Significant Hazard"
  395.                 ( "Check_Print"
  396.                   "Issue"
  397.                 )
  398.                        )
  399.                    )
  400.                    (
  401.                        "3D"
  402.                        (
  403.                            "Mono"
  404.                 ( "Check_Print"
  405.                   "Issue"
  406.                 )
  407.                        )
  408.                        (
  409.         "Colour"
  410.                 ( "Check_Print"
  411.                   "Issue"
  412.                 )
  413.                        )
  414.                    )
  415.                )               
  416.   (
  417.                    "A1"
  418.                    (
  419.                        "2D"
  420.                         (
  421.                            "Mono"
  422.                 ( "Check_Print"
  423.                   "Issue"
  424.                 )
  425.                        )
  426.                        (
  427.         "Colour"
  428.                 ( "Check_Print"
  429.                   "Issue"
  430.                 )
  431.                        )
  432.                        (
  433.                            "Significant Hazard"
  434.                 ( "Check_Print"
  435.                   "Issue"
  436.                 )
  437.                        )
  438.                    )
  439.                    (
  440.                        "3D"
  441.                        (
  442.                            "Mono"
  443.                 ( "Check_Print"
  444.                   "Issue"
  445.                 )
  446.                        )
  447.                        (
  448.         "Colour"
  449.                 ( "Check_Print"
  450.                   "Issue"
  451.                 )
  452.                        )
  453.                    )
  454.                )                (
  455.                    "A3"
  456.                    (
  457.                        "2D"
  458.                         (
  459.                            "Mono"
  460.                 ( "Check_Print"
  461.                   "Issue"
  462.                 )
  463.                        )
  464.                        (
  465.         "Colour"
  466.                 ( "Check_Print"
  467.                   "Issue"
  468.                 )
  469.                        )
  470.                        (
  471.                            "Significant Hazard"
  472.                 ( "Check_Print"
  473.                   "Issue"
  474.                 )
  475.                        )
  476.                    )
  477.                    (
  478.                        "3D"
  479.                        (
  480.                            "Mono"
  481.                 ( "Check_Print"
  482.                   "Issue"
  483.                 )
  484.                        )
  485.                        (
  486.         "Colour"
  487.                 ( "Check_Print"
  488.                   "Issue"
  489.                 )
  490.                        )
  491.                    )
  492.                )
  493.            )
  494.    )
  495. )
  496. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  497. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  498. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  499.    (if
  500.        (and
  501.            (setq dcl (vl-filename-mktemp "tmp.dcl"))
  502.            (setq des (open dcl "w"))
  503.            (foreach str
  504.               '(
  505.                    "lbx : list_box"
  506.                    "{"
  507.                    "    alignment = centered;"
  508.                    "    fixed_width = true;"
  509.                    "    fixed_height = true;"
  510.                    "    width = 20;"
  511.                    "    height = 15;"
  512.                    "}"
  513.                    "test : dialog"
  514.                    "{"
  515.                    "    label = "List Box Dependency Example";"
  516.                    "    spacer;"
  517.                    "    : row"
  518.                    "    {"
  519.                    "        : lbx { key = "lb0"; label = "Client"; }"
  520.                    "        : lbx { key = "lb1"; label = "Sheet Size"; }"
  521.                    "        : lbx { key = "lb2"; label = "2D / 3D"; }"
  522.                    "        : lbx { key = "lb3"; label = "Colour Table"; }"
  523.                    "        : lbx { key = "lb4"; label = "Issue / Check Print"; }"
  524.                    "    }"
  525.                    "    spacer;"
  526.                    "    ok_cancel;"
  527.                    "}"
  528.                )
  529.                (write-line str des)
  530.            )
  531.            (not (setq des (close des)))
  532.            (< 0 (setq dch (load_dialog dcl)))
  533.            (new_dialog "test" dch)
  534.        )
  535.        (progn           
  536.            (setq rtn '(0 0 0 0 0))
  537.            (LM:dcld:action '("lb0" "lb1" "lb2" "lb3" "lb4") 'lst 'rtn)
  538.            (if (= 1 (start_dialog))
  539.                (command
  540.                        (substr
  541.                            (apply 'strcat
  542.                                (mapcar '(lambda ( x ) (strcat "" x))
  543.                                    (LM:dcld:getitems rtn lst)
  544.                                )
  545.                            )
  546.         1
  547.                        )
  548.                )
  549.                (princ "\n*Cancel*")
  550.            )
  551.        )
  552.    )
  553.    (*error* nil)
  554.    (princ)
  555. )

 
这意味着您正在传递定义已设置的4个变量值CurrentDWG UName ARev ACP,但在下一行中设置它们,可能很简单,只需将其设置为局部变量。
 
  1. defun C:AA12DMONOCHECK_PRINT(CurrentDWG UName ARev ACP)

 
当你在做dcl a plot range选项时,也可以使用Mybe。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:50:30 | 显示全部楼层
恐怕这还没有解决这个问题。我仍然在命令行中看到这个,
 
AA12DMonoCheck\u Print未知命令“AA12DMonoCheck\u Print”。按F1键获取帮助。
 
就像我说的,当我运行主PDFPLOT命令时,如果我输入AA12DMONOCHECK\u PRINT,它还不能工作。这一定是我告诉它运行用户选择的方式。我在下面用过这个
  1. defun AA12DMONOCHECK_PRINT(CurrentDWG UName ARev ACP)

 
可能是因为我告诉它,这是一个命令,但它不是AutoCAD命令,所以它不知道它是什么。但我不知道如何告诉它运行。
 
此外,我很喜欢添加绘图范围选项的想法,但在我的工作领域,在多个选项卡上有东西是一个很大的禁忌,它只是模型空间和一个布局允许。虽然我可能会考虑添加这样的东西,作为一种学习锻炼,一旦我能想出如何让它发挥作用。
181510t6mm0m6av8m8628m.png
回复

使用道具 举报

5

主题

30

帖子

25

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 17:53:28 | 显示全部楼层
您可以用与普通defun相同的方式调用c:defun,(c::AA12DMONOCHECK\u PRINT)您不需要使用命令
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:58:37 | 显示全部楼层
所以如果我改变
  1. defun AA12DMONOCHECK_PRINT(CurrentDWG UName ARev ACP)


  1. (defun C:AA12DMONOCHECK_PRINT( / CurrentDWG UName ARev ACP)

如果它工作,因为我已经改变了它,它没有哈哈,整个事情运行良好,它没有告诉我AA12DMONOCHECK\u PRINT是一个未知的命令,但它也没有做任何事情后,选择了。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 08:50 , Processed in 0.550829 second(s), 74 queries .

© 2020-2025 乐筑天下

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