Chuyển đến nội dung
Diễn đàn CADViet

Thái An 97

Thành viên
  • Số lượng nội dung

    4
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi Thái An 97


  1. 33 phút trước, huunhantvxdts đã nói:

    Sửa lại cho bạn load vào hết lỗi nhé:

    
    (defun c:ttt (/ LM:al-effectivename LM:getdynprops blk blk_name ent i lst_blk pt row ss tblobj x y htxt)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (defun LM:al-effectivename  (ent / blk rep)
      (if (wcmatch (setq blk (cdr (assoc 2 (entget ent)))) "`**")
       (if (and (setq rep (cdadr (assoc -3 (entget (cdr (assoc 330 (entget (tblobjname "block" blk)))) '("AcDbBlockRepBTag")))))
                (setq rep (handent (cdr (assoc 1005 rep)))))
        (setq blk (cdr (assoc 2 (entget rep))))))
      blk
     )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (defun LM:getdynprops  (blk)
      (mapcar '(lambda (x) (cons (vla-get-propertyname x) (vlax-get x 'value)))
              (vlax-invoke blk 'getdynamicblockproperties))
    )
    (vl-load-com)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
     (or (> (setq htxt (getvar 'TEXTSIZE)) 0) (setq htxt (setvar 'TEXTSIZE 250)))
    (if (setq ss (ssget (list (cons 0 "INSERT"))))
    (progn 
        (setq i -1)
        (while (setq ent (ssname ss (setq i (1+ i))))
              (setq blk (vlax-ename->vla-object ent))
              (setq blk_name
    (if (= "*" (substr (cdr (assoc 2 (entget ent))) 1 1))
    (strcat (LM:al-effectivename ent) ": " (cdar (LM:getdynprops blk)))
    (LM:al-effectivename ent)
    ))
              (if (not (assoc blk_name lst_blk))
               (setq lst_blk (cons (cons blk_name 1) lst_blk))
               (setq lst_blk (subst (cons blk_name (1+ (cdr (assoc blk_name lst_blk)))) (assoc blk_name lst_blk) lst_blk)))
    	)
             (setq lst_blk (vl-sort lst_blk '(lambda (x y) (< (car x) (car y)))))
             (setq pt     (getpoint "\nSpecify insertion point: ")
                   TblObj (vla-addtable (vla-get-modelspace (vla-get-ActiveDocument (vlax-get-Acad-Object)))
                                        (vlax-3d-point pt) (+ (length lst_blk) 2) 4 (* 1.5 htxt) (* 6 htxt)))
             (vla-SetColumnWidth TblObj 0 (* 4 htxt))
             (vla-SetColumnWidth TblObj 1 (* 12 htxt))
             (vla-put-vertcellmargin TblObj (* 0.2 htxt))
             (mapcar '(lambda (x y) (vla-setTextHeight TblObj x y))
                     (list acTitleRow acHeaderRow acDataRow)
                     (list htxt htxt (* 0.75 htxt)))
             (mapcar '(lambda (x) (vla-setAlignment TblObj x 8)) (list acTitleRow acHeaderRow acDataRow))
             (vla-MergeCells TblObj 0 0 0 2)
             (vla-setText TblObj 0 0 "Bang thong ke khoi luong")
             (vla-setText TblObj 1 0 "STT")
             (vla-setText TblObj 1 1 "Ten")
             (vla-setText TblObj 1 2 "Don vi")
             (vla-setText TblObj 1 3 "So luong")
             (setq row 2
                   i   1)
             (foreach pt  lst_blk
              (vla-setText TblObj row 0 (itoa i))
              (vla-setText TblObj row 1 (car pt))
              (vla-setText TblObj row 2 "cai")
              (vla-setText TblObj row 3 (itoa (cdr pt)))
              (setq row (1+ row)
                    i   (1+ i))))
      (vlax-release-object TblObj))
     (princ))

     

    Mình load đc rồi, cảm ơn bạn

     

×