Página 1 de 1

rutina Lisp cambio plano diedrico

Publicado: Sab, 08 Mar 2014, 11:30
por Celedonio
Alguien sabe cómo o donde puedo encontrar una rutina en Lisp u otro lenguaje, que efectúe automáticamente, o con el menor numero de pulsaciones, el cambio de plano de un punto dado en el sistema Diédrico ( en Autocad).
CambioPlano.png
CambioPlano.png (21.13 KiB) Visto 1326 veces
Saludos y gracias

Publicado: Lun, 10 Mar 2014, 13:29
por Antonio Castilla
.
No conozco si existe esa rutina, pero te explico en un vídeo como lo hago yo.

Primero perdonar por la malísima calidad del vídeo. El sonido sale metálico, no sé manejar el programa de edición de vídeo, las imágenes se van fuera y no se ven, etc. Pero bueno para no perder más tiempo ahí está. Más adelante me pondré más en serio para hacer algo más decente.

El método que utilizo es cambiar los ejes X-Y (el SCP) y colocarlo sobre las líneas que quiero cambiar para poder utilizar la opción orto.

http://www.youtube.com/watch?v=E1Rr_x4MG5Y

Publicado: Lun, 17 Mar 2014, 11:11
por Celedonio
Ya he conseguido la rutina. :muy_bueno:

1º se marca la LT antigua
2º se marca la nueva línea de tierra
3º se marca la ppcion del punto que quiero cambiar

Y automáticamente la rutina hace el cambio del punto

La rutina es esta:

(defun c:cambioLT ( / S R A B R1 R2 X C)
(setq S (car (entsel "Seleccione LT vieja:"))
R (car (entsel "Seleccione LT nueva:"))
A (getpoint "Seleccione ppcion cambiante:")
B (getpoint "Seleccione ppcion invariable:")
R1 (cdr (assoc 10 (entget R)))
R2 (cdr (assoc 11 (entget R)))
X (inters R1 R2 B (polar B (+ (angle R1 R2) (/ pi 2.0)) 1) nil)
C (polar B (angle B X) (+ (distance B X) (distance A (inters (cdr (assoc 10 (entget S))) (cdr (assoc 11 (entget S))) A B))))
)
(entmake (list '(0 . "LINE")(cons 10 B)(cons 11 X)))
(entmake (list '(0 . "LINE")(cons 10 X)(cons 11 C)))
)

Saludos