乐筑天下

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

[编程交流] Lisp使用块创建bom表

[复制链接]

3

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:11:02 | 显示全部楼层 |阅读模式
我试图找出一个LISP来创建一个包含属性块的BOM表。我的公司目前使用“BOM提取器”应用程序,这是好的,我希望它有唯一的事情是创建不同的文本高度的样式保存在应用程序中,而不是所有我要做的是选择我需要的样式与保存的文本高度插入到绘图中。我偶然发现了一条2010年的帖子(http://www.cadtutor.net/forum/showthread.php?54412-制作一个bom表(making-a-bom-list-from-blocks-with-attributes),这是我正在寻找的,除了启动lisp命令并插入表格时,它会带来bom表中不需要的属性的其他部分。有人能帮我“tweek”Lisp程序,我需要它吗?标题和列需要类似于图2。
第一张照片是当我试着自己用Lisp程序的Lisp程序的时候,结果是这样的。
171107qzpkbvnjvwfkqs7h.jpg
171109pa621in99rjhf2aa.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:14:27 | 显示全部楼层
您需要发布lisp代码和样例dwg。所有的海报块都是不同的,所以很难做到一个代码就能做到所有。
 
不用深入讨论,有一种方法可以在不知道其标记名的情况下读取块属性,并将其放入表的正确列中。
回复

使用道具 举报

3

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:19:04 | 显示全部楼层
对不起,这个帖子真的很新。在做了更多的研究后,我从李·麦克那里找到了这段代码,这段代码非常精彩:
  1. (defun c:bnum ( / *error* mutter ss doc )
  2. ;; © Lee Mac  ~  05.06.10
  3. (defun *error* ( msg )
  4.    (and mutter (setvar 'nomutt mutter))
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ)
  8. )
  9. (or *title (setq *title "Block Data"))
  10. (or *prev  (setq *prev  "ON"))
  11. (setq mutter (getvar 'nomutt))
  12. (setvar 'nomutt 1)
  13. (princ "\nSelect Blocks to Count <All> : ")
  14. (cond (  (not (progn (setq ss (cond (  (ssget      '((0 . "INSERT"))))
  15.                                      (  (ssget "_X" '((0 . "INSERT"))))))
  16.                       (setvar 'nomutt mutter) ss))                  
  17.           (princ "\n** No Blocks Found **")
  18.        )
  19.        (
  20.          (_DisplayResult
  21.            (mapcar
  22.              (function
  23.                (lambda ( x ) (list (car x) (itoa (cadr x))))
  24.              )
  25.              (
  26.                (lambda ( / l n )
  27.                  (vlax-for obj
  28.                    (setq ss
  29.                      (vla-get-ActiveSelectionSet
  30.                        (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  31.                      )
  32.                    )
  33.                    (if (zerop (logand 45 (cdr (assoc 70 (tblsearch "BLOCK" (setq n (BlockName obj)))))))
  34.                      (setq l (assoc++ n l))
  35.                    )
  36.                  )
  37.                  l
  38.                )
  39.              )
  40.            )
  41.          )
  42.        )
  43.        (  (princ "\n** No Blocks Found **")  )
  44. )
  45. (princ)
  46. )
  47. (defun _DisplayResult ( lst / rLen )
  48. (if lst
  49.    (progn
  50.      (setq rLen
  51.        (+ 3
  52.          (apply (function max)
  53.            (cons 5
  54.              (mapcar (function strlen)
  55.                (mapcar (function cadr) lst)
  56.              )
  57.            )
  58.          )
  59.        )
  60.      )
  61.      (mapcar
  62.        (function
  63.          (lambda ( item )
  64.            (princ
  65.              (strcat "\n"
  66.                (PadRight (TidyString (car  item) 40) "."   40) "|"
  67.                (PadLeft  (cadr item) "." rLen)
  68.              )
  69.            )
  70.          )
  71.        )
  72.        (append
  73.          (list '("MANUFACTURER_NUMBER" "QUANTITY")
  74.            (list (PadRight "" "-" 40) (PadLeft  "" "-" rLen))
  75.          )
  76.          (setq lst
  77.            (vl-sort lst
  78.              (function
  79.                (lambda ( a b ) (< (car a) (car b)))
  80.              )
  81.            )
  82.          )
  83.          (list
  84.            (list (PadRight "" "-" 40) (PadLeft "" "-" rLen))
  85.          )
  86.        )
  87.      )
  88.      (terpri)
  89.      (if (> (atof (getvar 'ACADVER)) 16.)
  90.        (progn
  91.          (while
  92.            (progn
  93.              (initget "Yes No Settings")
  94.              (setq choix (getkword "\nTable? [Yes/No/Settings] <Yes> : "))
  95.              (cond (  (or (not choix) (eq "Yes" choix))
  96.                     
  97.                       (GrMove
  98.                         (AddTable
  99.                           (GetActiveSpace
  100.                             (vla-get-ActiveDocument
  101.                               (vlax-get-acad-object)
  102.                             )
  103.                           )
  104.                           (getvar 'VIEWCTR) *title
  105.                           (cons '("Block Name" "Count") lst)
  106.                           (eq "ON" *prev)
  107.                         )
  108.                         'InsertionPoint "\nPlace Table... " 0
  109.                       )
  110.                     nil
  111.                    )
  112.                    (  (eq "Settings" choix)
  113.                       (while
  114.                         (progn
  115.                           (initget "Title Preview Exit")
  116.                           (princ (strcat "\n<< Title: " (if (eq "" *title) "-None-" *title) ", Block Preview: " *prev " >>"))
  117.                           (setq subchoix (getkword "\nEdit Settings [Title/Preview/Exit] <Exit> : "))
  118.                           (cond (  (or (not subchoix) (eq "Exit" subchoix)) nil  )
  119.                                 (  (eq "Title" subchoix)
  120.                                    (setq *title (getstring t "\nSpecify Table Title or <Enter> for None: "))
  121.                                 )
  122.                                 (t (initget "ON OFF")
  123.                                    (setq *prev (cond ((getkword "\nBlock Preview Setting [ON/OFF] <ON> : ")) ("ON")))
  124.                                 )                        
  125.                           )
  126.                         )
  127.                       )
  128.                      t
  129.                    )
  130.                    (  (textscr)  )
  131.              )
  132.            )
  133.          )
  134.          t
  135.        )
  136.        (not (textscr))
  137.      )         
  138.    )
  139. )      
  140. )
  141. (defun assoc++ ( key lst )
  142. (
  143.    (lambda ( pair )
  144.      (cond
  145.        ( pair
  146.          (subst (list (car pair) (1+ (cadr pair))) pair lst)
  147.        )
  148.        ( (cons (list key 1) lst) )
  149.      )
  150.    )
  151.    (assoc key lst)
  152. )
  153. )
  154. (defun Is64Bit nil
  155. (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
  156. )
  157. (defun BlockName ( obj )
  158. (vlax-get-property obj
  159.    (if (vlax-property-available-p obj 'EffectiveName)
  160.      'EffectiveName 'Name
  161.    )
  162. )
  163. )
  164. (defun GetActiveSpace ( doc )
  165. (vlax-get-property doc
  166.    (if (or (eq acModelSpace (vla-get-ActiveSpace doc))
  167.            (eq :vlax-true   (vla-get-MSpace doc)))
  168.      'ModelSpace 'PaperSpace
  169.    )
  170. )
  171. )
  172. (defun GetObjectID ( obj doc )
  173. (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE")))
  174.    (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false)
  175.    (itoa (vla-get-Objectid obj))
  176. )
  177. )
  178. (defun Itemp ( coll item )
  179. (if
  180.    (not
  181.      (vl-catch-all-error-p
  182.        (setq item
  183.          (vl-catch-all-apply
  184.            (function vla-item) (list coll item)
  185.          )
  186.        )
  187.      )
  188.    )
  189.    item
  190. )
  191. )
  192. (defun AddTable ( block pt title data preview / blks doc tObj tStyle )
  193. (setq tStyle (GetTableStyle (getvar 'CTABLESTYLE)))
  194. (vlax-put-property
  195.    (setq tObj
  196.      (vla-AddTable block
  197.        (vlax-3D-point pt) (1+ (length data))
  198.        (+ (if preview 1 0) (length (car data)))
  199.        (* 1.8 (vla-getTextHeight tStyle acDataRow))
  200.        (* 0.8
  201.          (apply (function max)
  202.            (mapcar (function strlen)
  203.              (apply (function append) data)
  204.            )
  205.          )
  206.          (vla-getTextHeight tStyle acDataRow)
  207.        )
  208.      )
  209.    )
  210.    'StyleName (getvar 'CTABLESTYLE)
  211. )  
  212. (vla-put-RegenerateTableSuppressed tObj :vlax-true)
  213. (setq blks
  214.    (vla-get-blocks
  215.      (setq doc
  216.        (vla-get-ActiveDocument
  217.          (vlax-get-acad-object)
  218.        )
  219.      )
  220.    )
  221. )
  222. (if preview
  223.    (progn
  224.      (vla-SetText tObj 1 0 "Preview")
  225.      (
  226.        (lambda ( row )
  227.          (mapcar
  228.            (function
  229.              (lambda ( block ) (setq row (1+ row))
  230.                (vla-SetCellType tObj row 0 acBlockCell)
  231.                (vla-SetBlockTableRecordId tObj row 0
  232.                  (GetObjectID (Itemp blks block) doc) t
  233.                )
  234.              )
  235.            )
  236.            (mapcar (function car) (cdr data))
  237.          )
  238.        )
  239.        1
  240.      )
  241.    )
  242. )
  243. (
  244.    (lambda ( row )
  245.      (mapcar
  246.        (function
  247.          (lambda ( rowitem ) (setq row (1+ row))
  248.            (
  249.              (lambda ( column )
  250.                (mapcar
  251.                  (function
  252.                    (lambda ( item )
  253.                      (vla-SetText tObj row
  254.                        (setq column (1+ column)) item
  255.                      )
  256.                    )
  257.                  )
  258.                  rowitem
  259.                )
  260.              )
  261.              (if preview 0 -1)
  262.            )
  263.          )
  264.        )
  265.        data
  266.      )
  267.    )
  268.    0
  269. )
  270. (if (eq "" title)
  271.    (vla-deleterows tObj 0 1)
  272.    (vla-SetText tObj 0 0 title)
  273. )  
  274. (vla-put-RegenerateTableSuppressed tObj :vlax-false)
  275. tObj
  276. )
  277. (defun GetTableStyle ( Name )
  278. (if (setq Dict
  279.        (Itemp
  280.          (vla-get-Dictionaries
  281.            (vla-get-ActiveDocument
  282.              (vlax-get-acad-object)
  283.            )
  284.          )
  285.          "ACAD_TABLESTYLE"
  286.        )
  287.      )
  288.    (Itemp Dict Name)
  289. )
  290. )
  291. (defun GrMove ( obj prop msg cur / *error* gr data )
  292. (defun *error* ( msg )
  293.    (and obj (not (vlax-erased-p obj)) (vla-delete obj))
  294.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  295.        (princ (strcat "\n** Error: " msg " **")))
  296.    (princ)
  297. )
  298. (if (vlax-property-available-p obj prop)
  299.    (progn
  300.      (princ msg)
  301.      (while
  302.        (and (= 5 (car (setq gr (grread t 13 cur))))
  303.             (listp (setq data (cadr gr))))
  304.        (vlax-put-property obj prop (vlax-3D-point data))
  305.      )
  306.      data
  307.    )
  308. )
  309. )
  310. (defun TidyString ( str len )
  311. (if (> (strlen str) len)
  312.    (strcat (substr str 1 (- len 3)) "...") str
  313. )
  314. )
  315. (defun PadRight ( str char len )
  316. (while (< (strlen str) len)
  317.    (setq str (strcat str char))
  318. )
  319. str
  320. )
  321. (defun PadLeft ( str char len )
  322. (while (< (strlen str) len)
  323.    (setq str (strcat char str))
  324. )
  325. str
  326. )
  327. (princ "\nø¤º°`°º¤ø  Count.lsp ~ Copyright © by Lee McDonnell  ø¤º°`°º¤ø")
  328. (princ "\n   ~¤~          ...Type "Count" to Invoke...            ~¤~   ")
  329. (princ)
  330. ;;;¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,;;;
  331. ;;                                                                               ;;
  332. ;;                             End of Program Code                               ;;
  333. ;;                                                                               ;;
  334. ;;;ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,¤º°`°º¤;;;

我想出了如何创建更多我需要的列,并根据需要命名。现在唯一的问题是我需要编辑代码,从动态块中读取属性,并将信息放入正确的列中。我知道它只是执行dataextraction命令,但这需要很长时间。我附上了一个简单的dwg测试BOM表。如果有人能帮我(非常感谢)几个动态块。此外,这是我的更改代码,用于按顺序添加列(如果有帮助的话?)
  1. (defun c:BC ( / *error* mutter ss doc )
  2. ;; © Lee Mac  ~  05.06.10
  3. (defun *error* ( msg )
  4.    (and mutter (setvar 'nomutt mutter))
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ)
  8. )
  9. (or *title (setq *title "Block Data"))
  10. (or *prev  (setq *prev  "ON"))
  11. (setq mutter (getvar 'nomutt))
  12. (setvar 'nomutt 1)
  13. (princ "\nSelect Blocks to Count <All> : ")
  14. (cond (  (not (progn (setq ss (cond (  (ssget      '((0 . "INSERT"))))
  15.                                      (  (ssget "_X" '((0 . "INSERT"))))))
  16.                       (setvar 'nomutt mutter) ss))                  
  17.           (princ "\n** No Blocks Found **")
  18.        )
  19.        (
  20.          (_DisplayResult
  21.            (mapcar
  22.              (function
  23.                (lambda ( x ) (list (car x) (itoa (cadr x))))
  24.              )
  25.              (
  26.                (lambda ( / l n )
  27.                  (vlax-for obj
  28.                    (setq ss
  29.                      (vla-get-ActiveSelectionSet
  30.                        (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  31.                      )
  32.                    )
  33.                    (if (zerop (logand 45 (cdr (assoc 70 (tblsearch "BLOCK" (setq n (BlockName obj)))))))
  34.                      (setq l (assoc++ n l))
  35.                    )
  36.                  )
  37.                  l
  38.                )
  39.              )
  40.            )
  41.          )
  42.        )
  43.        (  (princ "\n** No Blocks Found **")  )
  44. )
  45. (princ)
  46. )
  47. (defun _DisplayResult ( lst / rLen )
  48. (if lst
  49.    (progn
  50.      (setq rLen
  51.        (+ 3
  52.          (apply (function max)
  53.            (cons 5
  54.              (mapcar (function strlen)
  55.                (mapcar (function cadr) lst)
  56.              )
  57.            )
  58.          )
  59.        )
  60.      )
  61.      (mapcar
  62.        (function
  63.          (lambda ( item )
  64.            (princ
  65.              (strcat "\n"
  66.                (PadRight (TidyString (car  item) 40) "."   40) "|"
  67.                (PadLeft  (cadr item) "." rLen)
  68.              )
  69.            )
  70.          )
  71.        )
  72.        (append
  73.          (list '("ID" "MANUFACTURER" "PART NUMBER" "DESCRIPTION" "QUANTITY")
  74.            (list (PadRight "" "-" 40) (PadLeft  "" "-" rLen))
  75.          )
  76.          (setq lst
  77.            (vl-sort lst
  78.              (function
  79.                (lambda ( a b ) (< (car a) (car b)))
  80.              )
  81.            )
  82.          )
  83.          (list
  84.            (list (PadRight "" "-" 40) (PadLeft "" "-" rLen))
  85.          )
  86.        )
  87.      )
  88.      (terpri)
  89.      (if (> (atof (getvar 'ACADVER)) 16.)
  90.        (progn
  91.          (while
  92.            (progn
  93.              (initget "Yes No Settings")
  94.              (setq choix (getkword "\nTable? [Yes/No/Settings] <Yes> : "))
  95.              (cond (  (or (not choix) (eq "Yes" choix))
  96.                     
  97.                       (GrMove
  98.                         (AddTable
  99.                           (GetActiveSpace
  100.                             (vla-get-ActiveDocument
  101.                               (vlax-get-acad-object)
  102.                             )
  103.                           )
  104.                           (getvar 'VIEWCTR) *title
  105.                           (cons '("ID" "MANUFACTURER" "PART NUMBER" "DESCRIPTION" "QUANTITY") lst)
  106.                           (eq "ON" *prev)
  107.                         )
  108.                         'InsertionPoint "\nPlace Table... " 0
  109.                       )
  110.                     nil
  111.                    )
  112.                    (  (eq "Settings" choix)
  113.                       (while
  114.                         (progn
  115.                           (initget "Title Preview Exit")
  116.                           (princ (strcat "\n<< Title: " (if (eq "" *title) "-None-" *title) ", Block Preview: " *prev " >>"))
  117.                           (setq subchoix (getkword "\nEdit Settings [Title/Preview/Exit] <Exit> : "))
  118.                           (cond (  (or (not subchoix) (eq "Exit" subchoix)) nil  )
  119.                                 (  (eq "Title" subchoix)
  120.                                    (setq *title (getstring t "\nSpecify Table Title or <Enter> for None: "))
  121.                                 )
  122.                                 (t (initget "ON OFF")
  123.                                    (setq *prev (cond ((getkword "\nBlock Preview Setting [ON/OFF] <ON> : ")) ("ON")))
  124.                                 )                        
  125.                           )
  126.                         )
  127.                       )
  128.                      t
  129.                    )
  130.                    (  (textscr)  )
  131.              )
  132.            )
  133.          )
  134.          t
  135.        )
  136.        (not (textscr))
  137.      )         
  138.    )
  139. )      
  140. )
  141. (defun assoc++ ( key lst )
  142. (
  143.    (lambda ( pair )
  144.      (cond
  145.        ( pair
  146.          (subst (list (car pair) (1+ (cadr pair))) pair lst)
  147.        )
  148.        ( (cons (list key 1) lst) )
  149.      )
  150.    )
  151.    (assoc key lst)
  152. )
  153. )
  154. (defun Is64Bit nil
  155. (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
  156. )
  157. (defun BlockName ( obj )
  158. (vlax-get-property obj
  159.    (if (vlax-property-available-p obj 'EffectiveName)
  160.      'EffectiveName 'Name
  161.    )
  162. )
  163. )
  164. (defun GetActiveSpace ( doc )
  165. (vlax-get-property doc
  166.    (if (or (eq acModelSpace (vla-get-ActiveSpace doc))
  167.            (eq :vlax-true   (vla-get-MSpace doc)))
  168.      'ModelSpace 'PaperSpace
  169.    )
  170. )
  171. )
  172. (defun GetObjectID ( obj doc )
  173. (if (eq "X64" (strcase (getenv "PROCESSOR_ARCHITECTURE")))
  174.    (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false)
  175.    (itoa (vla-get-Objectid obj))
  176. )
  177. )
  178. (defun Itemp ( coll item )
  179. (if
  180.    (not
  181.      (vl-catch-all-error-p
  182.        (setq item
  183.          (vl-catch-all-apply
  184.            (function vla-item) (list coll item)
  185.          )
  186.        )
  187.      )
  188.    )
  189.    item
  190. )
  191. )
  192. (defun AddTable ( block pt title data preview / blks doc tObj tStyle )
  193. (setq tStyle (GetTableStyle (getvar 'CTABLESTYLE)))
  194. (vlax-put-property
  195.    (setq tObj
  196.      (vla-AddTable block
  197.        (vlax-3D-point pt) (1+ (length data))
  198.        (+ (if preview 1 0) (length (car data)))
  199.        (* 1.8 (vla-getTextHeight tStyle acDataRow))
  200.        (* 0.8
  201.          (apply (function max)
  202.            (mapcar (function strlen)
  203.              (apply (function append) data)
  204.            )
  205.          )
  206.          (vla-getTextHeight tStyle acDataRow)
  207.        )
  208.      )
  209.    )
  210.    'StyleName (getvar 'CTABLESTYLE)
  211. )  
  212. (vla-put-RegenerateTableSuppressed tObj :vlax-true)
  213. (setq blks
  214.    (vla-get-blocks
  215.      (setq doc
  216.        (vla-get-ActiveDocument
  217.          (vlax-get-acad-object)
  218.        )
  219.      )
  220.    )
  221. )
  222. (if preview
  223.    (progn
  224.      (vla-SetText tObj 1 0 "Preview")
  225.      (
  226.        (lambda ( row )
  227.          (mapcar
  228.            (function
  229.              (lambda ( block ) (setq row (1+ row))
  230.                (vla-SetCellType tObj row 0 acBlockCell)
  231.                (vla-SetBlockTableRecordId tObj row 0
  232.                  (GetObjectID (Itemp blks block) doc) t
  233.                )
  234.              )
  235.            )
  236.            (mapcar (function car) (cdr data))
  237.          )
  238.        )
  239.        1
  240.      )
  241.    )
  242. )
  243. (
  244.    (lambda ( row )
  245.      (mapcar
  246.        (function
  247.          (lambda ( rowitem ) (setq row (1+ row))
  248.            (
  249.              (lambda ( column )
  250.                (mapcar
  251.                  (function
  252.                    (lambda ( item )
  253.                      (vla-SetText tObj row
  254.                        (setq column (1+ column)) item
  255.                      )
  256.                    )
  257.                  )
  258.                  rowitem
  259.                )
  260.              )
  261.              (if preview 0 -1)
  262.            )
  263.          )
  264.        )
  265.        data
  266.      )
  267.    )
  268.    0
  269. )
  270. (if (eq "" title)
  271.    (vla-deleterows tObj 0 1)
  272.    (vla-SetText tObj 0 0 title)
  273. )  
  274. (vla-put-RegenerateTableSuppressed tObj :vlax-false)
  275. tObj
  276. )
  277. (defun GetTableStyle ( Name )
  278. (if (setq Dict
  279.        (Itemp
  280.          (vla-get-Dictionaries
  281.            (vla-get-ActiveDocument
  282.              (vlax-get-acad-object)
  283.            )
  284.          )
  285.          "ACAD_TABLESTYLE"
  286.        )
  287.      )
  288.    (Itemp Dict Name)
  289. )
  290. )
  291. (defun GrMove ( obj prop msg cur / *error* gr data )
  292. (defun *error* ( msg )
  293.    (and obj (not (vlax-erased-p obj)) (vla-delete obj))
  294.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  295.        (princ (strcat "\n** Error: " msg " **")))
  296.    (princ)
  297. )
  298. (if (vlax-property-available-p obj prop)
  299.    (progn
  300.      (princ msg)
  301.      (while
  302.        (and (= 5 (car (setq gr (grread t 13 cur))))
  303.             (listp (setq data (cadr gr))))
  304.        (vlax-put-property obj prop (vlax-3D-point data))
  305.      )
  306.      data
  307.    )
  308. )
  309. )
  310. (defun TidyString ( str len )
  311. (if (> (strlen str) len)
  312.    (strcat (substr str 1 (- len 3)) "...") str
  313. )
  314. )
  315. (defun PadRight ( str char len )
  316. (while (< (strlen str) len)
  317.    (setq str (strcat str char))
  318. )
  319. str
  320. )
  321. (defun PadLeft ( str char len )
  322. (while (< (strlen str) len)
  323.    (setq str (strcat char str))
  324. )
  325. str
  326. )
  327. (princ "\nø¤º°`°º¤ø  Count.lsp ~ Copyright © by Lee McDonnell  ø¤º°`°º¤ø")
  328. (princ "\n   ~¤~          ...Type "Count" to Invoke...            ~¤~   ")
  329. (princ)
  330. ;;;¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,;;;
  331. ;;                                                                               ;;
  332. ;;                             End of Program Code                               ;;
  333. ;;                                                                               ;;
  334. ;;;ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,¤º°`°º¤;;;
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:22:39 | 显示全部楼层
该代码看起来是我的块计数器应用程序的前身。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:25:04 | 显示全部楼层
天哪,李,我认为在2010年做这样的代码是远远超过令人印象深刻!
你在论坛上几乎没有留下任何学习曲线的痕迹——我只能找到2008-9年的两条帖子,在那里你可以问一些问题。
回复

使用道具 举报

3

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:28:04 | 显示全部楼层
李,
有没有办法通过计数设置添加更多我需要的列?
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

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

铜币
254
发表于 2022-7-5 16:33:09 | 显示全部楼层
数据提取命令只需要很长时间即可设置并根据需要进行精确调整。设置好后,创建一个模板,将所有内容放置到位。然后,只需简单的刷新即可。如果精心设置,使用经过深思熟虑的块和属性,数据提取实际上会非常强大。
 
-TZ公司
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 16:35:04 | 显示全部楼层
嗨,胡羽毛,
 
PM我,如果你想我写一个完整的程序为您的要求,如本线程中所述。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:38:23 | 显示全部楼层
 
不是当前版本-请参阅我对您通过我的网站发布的电子邮件的回复。
回复

使用道具 举报

3

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 16:41:17 | 显示全部楼层
塔尔瓦特,
我还不能发送一个下午,因为我还没有访问权限?关于所需数量的帖子?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 19:51 , Processed in 0.980179 second(s), 75 queries .

© 2020-2025 乐筑天下

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