Ausrod, I'm very grateful for your help.
It was exactly what I needed.
Thank you very much.
(defun c:test (/ blkTable
blkObj
lstAtt
attName
attPromp
ocsY
lst10
lst11
)
(vl-load-com)
(defun *error* (errmsg)
(princ "error: ")
(princ errmsg)
(princ)
) ;_ >defun
(setq lstAtt '("A" "B" "C" "D"))
(if
(and
(entmake
(list
'(0 . "BLOCK")
'(2 . "TEST")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockBegin")
'(67 . 0)
'(8 . "0")
'(100 . "AcDbBlockReference")
'(10 0.0 0.0 0.0)
'(70 . 2)
) ;_ >list
) ;_ >entmake
(entmake
(list
'(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(67 . 0)
'(8 . "0")
'(100 . "AcDbPolyline")
'(90 . 10)
'(70 . 1)
'(38 . 0.0)
'(39 . 0.0)
'(10 -14.7821 1.42109e-014)
'(40 . 0.0)
'(41 . 1.0)
'(42 . 0.0)
'(91 . 0)
'(10 -14.7821 3.06147)
'(40 . 0.638135)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(10 -10.4525 7.39104)
'(40 . 0.0)
'(41 . 0.638135)
'(42 . 0.0)
'(91 . 0)
'(10 -4.32957 7.39104)
'(40 . 0.638135)
'(41 . 1.5)
'(42 . 0.0)
'(91 . 0)
'(10 1.77636e-015 3.06147)
'(40 . 1.5)
'(41 . 1.5)
'(42 . 0.0)
'(91 . 0)
'(10 -1.77636e-015 -3.06147)
'(40 . 1.5)
'(41 . 0.638135)
'(42 . 0.0)
'(91 . 0)
'(10 -4.32957 -7.39104)
'(40 . 0.638135)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(10 -10.4525 -7.39104)
'(40 . 0.0)
'(41 . 0.638135)
'(42 . 0.0)
'(91 . 0)
'(10 -14.7821 -3.06147)
'(40 . 1.0)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(10 -14.7821 1.42109e-014)
'(40 . 0.638135)
'(41 . 0.638135)
'(42 . 0.0)
'(91 . 0)
'(210 0.0 0.0 1.0)
) ;_ >list
) ;_ >entmake
(entmake
(list
'(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(67 . 0)
'(8 . "0")
'(100 . "AcDbPolyline")
'(90 . 4)
'(70 . 1)
'(38 . 0.0)
'(39 . 0.0)
'(10 -3.38524 2.28205)
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(10 -7.33787 4.26326e-014)
'(40 . 0.0)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(10 -3.38524 -2.28205)
'(40 . 0.0)
'(41 . 0.7)
'(42 . 0.0)
'(91 . 0)
'(10 -4.27563 1.42109e-014)
'(40 . 0.7)
'(41 . 0.0)
'(42 . 0.0)
'(91 . 0)
'(210 0.0 0.0 1.0)
) ;_ >list
) ;_ >entmake
(setq ocsY -3.0)
(mapcar
(function
(lambda (att)
(setq attName (cons 3 (strcat "AT_" att))
attPromp (cons 2 (strcat "AT_" att))
ocsY (+ ocsY 3.0)
lst10 (list 10 33.0 ocsY 0.0)
lst11 (list 11 33.0 ocsY 0.0)
) ;_ >setq
(entmake
(list
'(0 . "ATTDEF")
'(100 . "AcDbEntity")
'(8 . "0")
'(100 . "AcDbText")
lst10
'(40 . 2.0)
'(1 . "")
'(50 . 0.0)
'(41 . 1.0)
'(51 . 0.0)
'(7 . "STANDARD")
'(71 . 0)
'(72 . 0)
lst11
'(210 0.0 0.0 1.0)
'(100 . "AcDbAttributeDefinition")
'(280 . 0)
attName
attPromp
'(70 . 1)
'(73 . 0)
'(74 . 3)
'(280 . 0)
'(71 . 4)
'(72 . 0)
lst11
'(101 . "Embedded Object")
lst10
'(40 . 2.0)
'(41 . 0.0)
'(46 . 0.0)
'(71 . 1)
'(72 . 5)
'(1 . "")
'(7 . "STANDARD")
'(210 0.0 0.0 1.0)
lst11
'(42 . 0.0)
'(43 . 0.0)
'(50 . 0.0)
'(73 . 1)
'(44 . 1.0)
) ;_ >list
) ;_ >entmake
) ;_ >lambda
) ;_ >mapcar
lstAtt
) ;_ >mapcar
(entmake
'(
(0 . "ENDBLK")
(100 . "AcDbBlockEnd")
(8 . "0")
)
) ;_ >entmake
) ;_ >and
(progn
(setq blkTable (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
) ;_ >vla-get-blocks
) ;_ >setq
(if (not (vl-catch-all-error-p
(setq blkObj (vl-catch-all-apply
'vla-item
(list blkTable "TEST")
) ;_ >vl-catch-all-apply
) ;_ >setq
) ;_ >vl-catch-all-error-p
) ;_ >not
(progn
(vla-put-explodable blkObj :vlax-false)
(vla-put-blockscaling blkObj acUniform)
(vlax-put-property blkObj "Units" 4)
) ;_ >progn
) ;_ >if
) ;_ >progn
) ;_ >if
) ;_ >defun
Best regards, Luís Augusto