Ancho Mtext y Text
4 participantes
Página 1 de 1.
Ancho Mtext y Text
Hola que tal, alguien me podria decir como puedo extraer la longitud del ancho de un texto y un mtext.
Re: Ancho Mtext y Text
Creo que esto debería funcionar:
- Código:
(setq obj (vlax-ename->vla-object (car(entsel))))
(vla-GetBoundingBox obj 'minpoint 'maxpoint)
(setq ancho (- (car(vlax-safearray->list maxpoint))(car(vlax-safearray->list minpoint))))
Re: Ancho Mtext y Text
ok, gracias, una pregunta mas esta longitud del ancho del mtext y text se puede de alguna manera asociar con la longitud de un leader para que quede algo parecido a la imagen teniendo en cuenta que el leader y el texto son independientes el uno del otro.
PARA IGUALAR LEADER CON TEXTO
amc.dicsac escribió:ok, gracias, una pregunta mas esta longitud del ancho del mtext y text se puede de alguna manera asociar con la longitud de un leader para que quede algo parecido a la imagen teniendo en cuenta que el leader y el texto son independientes el uno del otro.
Por favor sube el DWG , recuerda que lo puedes hacer por el dropbox
PARA IGUALAR LEADER CON TEXTO
Hola que tal, adjunto mi dwg explicando lo que quiero hacer.
https://www.dropbox.com/sh/7kkt2zgdyjgbwwy/AAB1oH7LcnVVjjSGGz00ZYhLa?dl=0
https://www.dropbox.com/sh/7kkt2zgdyjgbwwy/AAB1oH7LcnVVjjSGGz00ZYhLa?dl=0
Re: Ancho Mtext y Text
Por ejemplo así, pero también puede hacerse por selección múltiple, un reactor para cada vez que pongas un texto o un leader, un nuevo comando texto-leader etc etc ...
Un saludo
- Código:
(defun c:seltl( / text lead lt lp pf i)
(if (and (setq text (entsel"\nSeleccionar texto : "))
(setq lead (entsel"\nSeleccionar leader : ")) )
(entmod
(setq text (cdr(entget (car text)))
lt (textbox text)
lt (apply 'distance lt) ;; diagonal de la caja de texto
lead (entget (car lead))
lp (mapcar 'cdr (vl-remove-if '(lambda(a)(/=(car a) 10)) lead)) ;; puntos del leader
pf (polar (cadr lp) (angle (cadr lp)(last lp)) lt) ;; nuevo punto final
i 0 ;;; para solo cambiar el último punto
lead (mapcar '(lambda(a)(if (=(car a)10)(setq i(1+ i)))
(if (and (= i 3)(=(car a)10))(cons 10 pf) a)) lead)
))
(printc "\nEntidad no encontrada")
)
(princ)
)
Un saludo
Última edición por nolo el Mar Mayo 24, 2016 12:21 am, editado 1 vez
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
dos modos de hacerlo , el mio no resultaba
Hola Nolo . muy ingeniosa la solución, yo lo traté de hacer por (VLA-PUT-COORDINATES LEADER VAR) , siendo Var la VARIANt de los puntos de LEADER , y me giraba el block del leader a 180º.
Después de mucho investigar , resulta que le cambiaba los valores de los DXF 211-212-213 .
Para el hecho por VLX
Según tu rutina LISP
Después de mucho investigar , resulta que le cambiaba los valores de los DXF 211-212-213 .
Para el hecho por VLX
- Código:
(211 1.0 -2.86427e-009 3.94591e-011)
(210 3.94591e-011 8.88184e-016 -1.0)
(212 0.0 0.0 0.0)
(213 -1.27255 3.64492e-009 -5.02136e-011)
Según tu rutina LISP
- Código:
(211 -1.0 -2.86427e-009 -3.94591e-011)
(210 -3.94591e-011 -8.88199e-016 1.0)
(212 0.0 0.0 0.0)
(213 1.27255 3.64492e-009 5.02136e-011)
Re: Ancho Mtext y Text
Gabriel, el mapcar, al devolver directamente una lista, da para muchas cosas.
Por cierto que ahora que hablas de rotar y simetría, me doy cuenta que había solucionado exclusivamente el caso del ejemplo y hay que considerar también las rotaciones.
Procedo a corregirlo ....
Un saludo
Por cierto que ahora que hablas de rotar y simetría, me doy cuenta que había solucionado exclusivamente el caso del ejemplo y hay que considerar también las rotaciones.
Procedo a corregirlo ....
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Re: Ancho Mtext y Text
Hola que tal, gracias nolo por la solución funciona perfectamente, admin cargue el lisp y no note nada raro con respecto a lo mencionado en tu mensaje, por otro lado la duda sería si quiero que tambien funcione con mtext abria que agregarle esta función (vla-GetBoundingBox) para que me limite el ancho del mtext.
- Código:
(defun c:grua (/ E LST MA MI)
(if (setq e (car (entsel "\n Select object: ")))
(progn (setq e (vla-copy (vlax-ename->vla-object e))
lst nil
) ;_ setq
(repeat 1000
(vla-GetBoundingBox e 'mi 'ma)
(setq
lst (cons (mapcar (function -) (vlax-safearray->list ma) (vlax-safearray->list mi))
lst
) ;_ cons
) ;_ setq
(vla-rotate e (vlax-3d-point 0. 0.) (/ pi 1000.))
) ;_ repeat
(vla-Delete e)
(princ "\n Bounding box object with minimal length: ")
(princ (assoc (car (apply 'mapcar (cons 'min lst))) lst))
(princ)
) ;_ progn
) ;_ if
) ;_ defun
Temas similares
» Cambiar propiedades de text y mtext
» TEXT to CVS
» Alinear MText
» Consulta rutina de mtext
» Es posible cambiar la fuente de un Mtext mediante Lisp??
» TEXT to CVS
» Alinear MText
» Consulta rutina de mtext
» Es posible cambiar la fuente de un Mtext mediante Lisp??
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|