programa cad lisp
Se puede implementar usando un reactor, siempre que el dibujo de líneas y la entrada de texto se deban completar en una sola operación usando funciones definidas. El código LISP es el siguiente:
(VL-Load. -Com)
p>(defun c:Line_Txt(/ Pt Pt1 Pt2 EntLine HandTxt VlaObj Tmp)
(setq Pt1 (getpoint "\nEspecifique el primer punto:"))
(setq Pt2 (getpoint "\nEspecificar siguiente punto:"))
(setq Pt (lista (/ (+ (coche Pt1) (coche Pt2)) 2) (/ ( + (cadr Pt1) (cadr Pt2)) 2) (/ (+ (caddr Pt1) (caddr Pt2)) 2)))
(comando "._Line" Pt1 Pt2 "")
( setq EntLine (entlast))
(setq VlaObj (cons (VLAX-EName->VLA-Object EntLine) '()));;Convertir línea recta en objeto VLA
( setq HandTxt '((0 . "TEXT"))
HandTxt (añadir HandTxt (lista (añadir '(10) Pt1)))
HandTxt (añadir HandTxt (list (append '(11) Pt)))
HandTxt (append HandTxt (list (cons 40 (getdist "\nSpecify height:"))))
HandTxt ( agregar HandTxt (lista (contras 72 1)))
HandTxt (agregar HandTxt (lista (contras 73 0)))
HandTxt (agregar HandTxt (lista (contras 50 (ángulo pt1) Pt2))) )
HandTxt (añadir HandTxt (lista (cons 1 (getstring "\nIntroduzca texto:>")))))
(entmake HandTxt)
(setq HandTxt (cdr (Assoc 5 (entget (entlast)))))
(VLR-Pers (VLR-Object-Reactor vlaObj HandTxt '((:vlr-modified. LineModefy)) ))
)
(defun LineModefy(EntLine EntTxt lista de parámetros / Pt Pt1 Pt2)
(setq EntTxt (entget (HandEnt (VLR-Data EntTxt ))) )
(setq EntLine (entget (VLAX-VLA-Object->EName EntLine)))
(setq Pt1 (cdr (assoc 10 EntLine)) Pt2 (cdr (assoc 11 EntLine)))
(setq Pt (lista (/ (+ (car Pt1) (car Pt2))) 2) (/ (+ (cadr Pt1) (cadr Pt
2)) 2) (/ (+ (caddr Pt1) (caddr Pt2)) 2)))
(setq EntTxt (subst (cons 50 (ángulo Pt1 Pt2)) (assoc 50 EntTxt) EntTxt)
EntTxt (subst (añadir '(10) Pt1) (asociación 10 EntTxt) EntTxt)
EntTxt (subst (añadir '(11) Pt) (asociación 11 EntTxt) EntTxt) )
(entmod EntTxt)
)
También se puede implementar usando bloques de atributos. Defina texto y líneas como bloques de atributos, abra el editor de bloques y. seleccione Establezca los parámetros de punto y los parámetros de rotación en la paleta y defina la acción que se realizará en la paleta de acciones... Consulte el bloque de atributos para obtener más detalles.