乐筑天下

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

[编程交流] 请帮助修改此块

[复制链接]

6

主题

122

帖子

118

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:54:38 | 显示全部楼层 |阅读模式
所以我试过李的两个方块计数器。我不想要另一个街区计数器。然而,我确实想了解如何修改我找到的这个块计数器。我不记得在哪里找到的(可能是从这里@cADTutor找到的)。
我把一些表格的标题从越南语改成了英语。然而,我想知道如何删除一列(可能是2列)。并添加一个total选项,该选项提供所有块的总和。
我不想要另一个块计数器,因为我喜欢这个计数器如何要求文本高度,并允许通过拾取单个块或通过窗口进行选择集(我不需要全局块计数器)。
我想去掉“唐六世”专栏,可能还有第一个专栏。我试过评论(一些台词,但似乎不起作用。
谢谢你的帮助
  1. ;; free lisp from cadviet.com
  2. ;; Altered by Greg Battin 1/10/2011 for english use
  3. (defun c:BlkQty (/ blk_id blk_len blk_name blks ent h header_lsp height i j
  4.          len0 lst_blk msp pt row ss str tblobj width width1 width2 x y)
  5. ;;  By : Gia Bach, gia_bach @  www.CadViet.com             ;;
  6. (defun TxtWidth (val h msp / txt minp maxp)
  7. (setq        txt (vla-AddText msp val (vlax-3d-point '(0 0 0)) h))
  8. (vla-getBoundingBox txt 'minp 'maxp )
  9. (vla-Erase txt)
  10. (-(car(vlax-safearray->list maxp))(car(vlax-safearray->list minp)))  )
  11. (defun GetOrCreateTableStyle (tbl_name / name namelst objtblsty objtblstydic tablst txtsty)
  12. (setq objTblStyDic (vla-item (vla-get-dictionaries *adoc) "ACAD_TABLESTYLE") )  
  13. (foreach itm (vlax-for itm objTblStyDic
  14.          (setq tabLst (append tabLst (list itm))))
  15.    (if (not
  16.   (vl-catch-all-error-p
  17.     (setq name (vl-catch-all-apply 'vla-get-Name (list itm)))))
  18.      (setq nameLst (append nameLst (list name)))  )  )
  19. (if (not (vl-position tbl_name nameLst))
  20.    (vla-addobject objTblStyDic tbl_name "AcDbTableStyle"))
  21. (setq objTblSty (vla-item objTblStyDic tbl_name)
  22. TxtSty (variant-value (vla-getvariable *adoc "TextStyle")))
  23. (mapcar '(lambda (x)(vla-settextstyle objTblSty x TxtSty))
  24.       (list acTitleRow acHeaderRow acDataRow) )
  25. (vla-setvariable *adoc "CTableStyle" tbl_name) )
  26. (defun GetObjectID (obj)
  27. (if (vl-string-search "64" (getenv "PROCESSOR_ARCHITECTURE"))
  28.    (vlax-invoke-method *util 'GetObjectIdString obj :vlax-false )
  29.    (vla-get-Objectid obj)))  
  30. ;main
  31. (if (setq ss (ssget (list (cons 0 "INSERT"))))
  32.    (progn
  33.      (vl-load-com)
  34.      (setq i -1 len0
  35.      (while (setq ent (ssname ss (setq i (1+ i))))
  36. (setq blk_name (cdr (assoc 2 (entget ent))))
  37. (if (> (setq blk_len (strlen blk_name)) len0)
  38.   (setq str blk_name len0 blk_len) )       
  39. (if (not (assoc blk_name lst_blk))
  40.   (setq lst_blk (cons (cons blk_name 1) lst_blk))
  41.   (setq lst_blk (subst (cons blk_name (1+ (cdr (assoc blk_name lst_blk))))
  42.                        (assoc blk_name lst_blk) lst_blk)))            )
  43.      (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (car x) (car y)) ) ))
  44.      (or *h* (setq *h* (* (getvar "dimtxt")(getvar "dimscale"))))
  45.      (initget 6)
  46.      (setq h (getreal (strcat "\nText Height <" (rtos *h*) "> :")))      
  47.      (if h (setq *h* h) (setq h *h*) )
  48.      (or *adoc (setq *adoc (vla-get-ActiveDocument (vlax-get-acad-object))))
  49.      (setq msp (vla-get-modelspace *adoc)
  50.     *util (vla-get-Utility *adoc)
  51.     blks (vla-get-blocks *adoc))      
  52.      (setq width1 (* 4 (TxtWidth "    " h msp))
  53.     width (* 2 (TxtWidth "Text Height" h msp))
  54.     height (* 2 h))
  55.      (if str
  56. (setq width2 (* 1.5 (TxtWidth (strcase str) h msp)))
  57. (setq width2 width))
  58.      (if (> h 3)
  59. (setq width (* (fix (/ width 10))10)
  60.       width1 (* (fix (/ width1 10))10)
  61.       width2 (* (fix (/ width2 10))10)
  62.       height (* (fix (/ height 5))5)))
  63.      (GetOrCreateTableStyle "CadEng")
  64.      (setq pt (getpoint "\nPlace Table :")
  65.     TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst_blk) 2) 5 height width))
  66.      (vla-put-regeneratetablesuppressed TblObj :vlax-true)
  67.      (vla-SetColumnWidth TblObj 0 width1)
  68.      (vla-SetColumnWidth TblObj 1 width2)
  69.      (vla-put-vertcellmargin TblObj (* 0.75 h))
  70.      (vla-put-horzcellmargin TblObj (* 0.75 h))
  71.      (mapcar '(lambda (x)(vla-setTextHeight TblObj x h))
  72.       (list acTitleRow acHeaderRow acDataRow) )
  73.      (mapcar '(lambda (x)(vla-setAlignment TblObj x )
  74.       (list acTitleRow acHeaderRow acDataRow))      
  75.      (vla-MergeCells TblObj 0 0 0 4)
  76.      (vla-setText TblObj 0 0 "Block Count Table")
  77.      (setq j -1 header_lsp (list "    " "Block Name" "Don vi" "Quantity" "Preview"))
  78.      (repeat (length header_lsp)
  79. (vla-setText TblObj 1 (setq j (1+ j)) (nth j header_lsp)))
  80.      (setq row 2 i 1)   
  81.      (foreach pt lst_blk
  82. (setq blk_name (car pt) j -1)
  83. (mapcar '(lambda (x)(vla-setText TblObj row (setq j (1+ j)) x))
  84.         (list i blk_name "cai" (cdr pt)))
  85. (vla-SetBlockTableRecordId TblObj row 4 (GetObjectID (vla-item blks blk_name)) :vlax-true)
  86. (vla-SetCellAlignment TblObj row 1 7)
  87. (vla-SetCellAlignment TblObj row 3 9)
  88. (setq row (1+ row) i (1+ i))        )
  89.      (vla-put-regeneratetablesuppressed TblObj :vlax-false)
  90.      (vlax-release-object TblObj) )  )
  91. (princ))

105440tjbh5abjvqh3n4bh.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:31 , Processed in 1.095751 second(s), 57 queries .

© 2020-2025 乐筑天下

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