spline a polilínea
Moderador: Moderadores
spline a polilínea
Hola!
Tengo un problema con el que me he topado varias veces en el poco tiempo que llevo manejando AutoCAD, y que siembre he terminado solucionando chapuceramente:
¿Es posible convertir las splines en polilíneas? ¿Cómo puede hacerse?
Muchas gracias.
Tengo un problema con el que me he topado varias veces en el poco tiempo que llevo manejando AutoCAD, y que siembre he terminado solucionando chapuceramente:
¿Es posible convertir las splines en polilíneas? ¿Cómo puede hacerse?
Muchas gracias.
splines a polilineas
El comando FLATTEN hace lo que quieres.
Espero haberte ayudado,
un saludo.
Espero haberte ayudado,
un saludo.
Re: splines a polilineas
No conocia el Comando. muy bueno.. Gracias.wentoya escribió:El comando FLATTEN hace lo que quieres.
Espero haberte ayudado,
un saludo.
- MCCDELINEANTE
- Técnico
- Mensajes: 93
- Registrado: Jue Dic 20, 2007 12:29 am
- Ubicación: Las Palmas de G.C.
- Contactar:
Otra posible solución mediante LISP.
Código: Seleccionar todo
; Convierte SPLINE en LWPOLYLINE
;;;(c) 2006 Cadalyst and Lloyd Beachy
(Defun C:spl_pl (/ ss pt# cmdecho osmode clayer count ent lay lng pt-list cnt)
(vl-load-com)
(setq ss (ssget '((0 . "spline")))
multi# (getint "Indique número de puntos de polilínea por un multiplo de puntos de control de la spline <5>: ")
cmdecho (getvar "cmdecho")
osmode (getvar "osmode")
clayer (getvar "clayer")
count 0
)
(if(null multi#)(setq multi# 5))
(setvar "cmdecho" 0)
(command "_.undo" "_begin")
(setvar "osmode" 0)
(repeat(sslength ss) ;repeat for each spline
(setq ent (vlax-ename->vla-object (ssname ss count));change spline to vla-object
lay (vlax-get-property ent "layer") ;spline's layer
cp# (vlax-get-property ent "numberofcontrolpoints") ;spline's control points number
lng (vlax-curve-getDistAtPoint ent(vlax-curve-getEndPoint ent));length of spline
pt-list(list(vlax-curve-getStartPoint ent)) ;coords for start of spline
cnt 1.0 ;segment counter
pt#(* cp# multi#)
);end setq
(repeat pt# ;repeat for each segment
(setq pt-list(cons(vlax-curve-getPointAtDist ent (* lng(/ cnt pt#)))pt-list));add segment's point to pt-list
(setq cnt(1+ cnt)) ;counter to next segment
);end segment repeat
(setq cnt 0) ;pline counter
(setvar "clayer" lay) ;match spline's layer
(command "_.pline" ;start "pline" command
(repeat(length pt-list) ;repeat for each point
(command(nth cnt pt-list)) ;enter current point
(setq cnt(1+ cnt)) ;counter to next point
""
)
)
(setq count(1+ count)) ;counter to next spline
)
(command "_.erase" ss "")
(setvar "osmode" osmode)
(setvar "clayer" clayer)
(command "_.undo" "_end")
(setvar "cmdecho" cmdecho)
(prin1)
)
- erichguaman
- Jefe
- Mensajes: 343
- Registrado: Jue Abr 17, 2008 12:02 am
- Ubicación: Madrid
- Contactar:
- erichguaman
- Jefe
- Mensajes: 343
- Registrado: Jue Abr 17, 2008 12:02 am
- Ubicación: Madrid
- Contactar:
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados