先凑合用吧,
 - (defun c:tt (/ ss lst p tb nlst i)
- (xd::Begin)
- (if (setq ss (ssget '((0 . "insert") (66 . 1))))
- (progn
- (setq lst (mapcar
- '(lambda (x)
- (list (xdrx_getpropertyvalue
- (car (xdrx_getpropertyvalue
- x
- "AttributeEntities"
- )
- )
- "textstring"
- )
- x
- )
- )
- (xdrx_pickset->ents ss)
- ) ;_构造表
- lst (xd::list:groupbyindex lst 0) ;_分组
- nlst (mapcar 'cadr lst)
- lst (mapcar '(lambda (x)
- (list (car x) (itoa (length (cdr x))))
- )
- lst
- )
- )
- (if (setq p (getpoint "\nInsert Point: "))
- (progn
- (setq i 1
- lst (mapcar '(lambda (x / l)
- (setq l (list (itoa i) " " (car x) (cadr x) " ")
- i (1+ i)
- )
- i
- 1
- l
- )
- lst
- )
- lst (cons '("序号" "图块" "图块名" "数量" "备注") lst)
- tb (XD::Table:Make lst p 800. 300.)
- )
- (XD::Table:begin tb)
- (xdrx_table_setcolumnwidth
- tb
- 2
- (+ (xdrx_table_columnwidth tb 2) 400.)
- )
- (xdrx_table_setcolumnwidth
- tb
- 1
- (+ (xdrx_table_columnwidth tb 2) 200.)
- )
- (xdrx_table_setcolumnwidth
- tb
- 0
- (+ (xdrx_table_columnwidth tb 2) 2.)
- )
- (xdrx_table_setcolumnwidth
- tb
- 3
- (+ (xdrx_table_columnwidth tb 2) 2.)
- )
- (xdrx_table_setcolumnwidth
- tb
- 4
- (+ (xdrx_table_columnwidth tb 2) 10.)
- )
- (xdrx_table_setalignment (entlast) 1 5)
- (xdrx_table_setalignment (entlast) 4 5)
- (vl-catch-all-apply
- 'vla-put-RepeatTopLabels
- (list (vlax-ename->vla-object tb) :vlax-true)
- ) ;_重复标题
- (xdrx_table_settextstring tb 0 0 "数量统计表")
- (setq i 1)
- (mapcar
- '(lambda (x)
- (xdrx_table_setblockid tb (setq i (1+ i)) 1 x t)
- )
- (mapcar
- '(lambda (a)
- (cadr (xdrx_getpropertyvalue a "BlockTableRecord"))
- )
- nlst
- )
- )
- (XD::Table:end tb)
- )
- )
- )
- )
- (XD::End)
- (princ)
- )
|