PDA

Ver versión completa : AutoCAD: orden recortar



javier
20/10/2005, 10:33
hola a todos:

bueno para empezar deciros que este tema lo plante ya hace tiempo pero no llegue a solucionar el problema.

el otro dia me vie nla necesidad de recortar una catografia, queiro decir tengo al cartografia pero solo necesitaba una parte, un rectangulo, con l cual tuve que recortar todo el perimetro, quiere decir esto que estuve mas tiempo recortando lineas que dibujando.

hay alguna forma de abreviar este sistema?

seguramente sea una tonteria que me agilice el tiempo, garcias

Paco Fernandez
20/10/2005, 11:48
Utiliza la opcion BORDE tras marcar la linea de corte. Para esto deben estar los objetos a cortar en la misma cota Z.

vorpal
20/10/2005, 12:15
Otra opcion posible:

Inserta la cartografia como una referencia externa (xref)
Delimita en la Xref la zona que quieres ver con una polilinea (xrefclip) y voila! ya está.

espero que te sirva.

Saludos.

LGOMEZ
20/10/2005, 21:06
Javier otra opción más:
Comando EXTRIM, que también está en EXPRESS>Modificar>Recorte especial.
Para utilizarle, haces una Polilínea alrededor de la zona que quieres conservar>Extrim>Seleccionas fuera de la polilínea, y te corta todas las líneas que llegan hasta la polilinea, luego si queda algo es cuestión de Erase (borrar).

Nelson
20/10/2005, 22:18
Otra forma inserta tu cartografia en model y luego en paper usas ventanas poligonales donde muestres solo lo que quieras ver.

scaner
22/10/2005, 17:22
javier, hola

Prueba esto,


;
; -- Orden PolErase
; Borra objetos por ventana/captura interior/exterior,
; o borra y recorta interior/exterior, a partir de una polílinea existente.
; ©2004/09/10 scaner, Spain
; Notas:
; Las 2D/3D polilíleas y las polilíneas optimizadas, que sirvan de borde
; de designación, se consideran cerradas y proyectadas sobre el plano z=0
; Para recortar se utiliza la función etrim de la orden extrim, de las Express Tools.
;
(defun c:polErase (/ pol typ vrt lyr pto ssx ssv ssc n ent ky1 ky2)
(defun dxf (ass ent) (cdr (assoc ass (entget ent))))
(setq old_error *error*)
(setq old_cmdecho (getvar "cmdecho")
old_highlight (getvar "highlight")
old_ucsfollow (getvar "ucsfollow")
)
(setvar "cmdecho" 0)
(setvar "ucsfollow" 0)
(command "_undo" "_begin")
(command "_ucs" "_world")
(while (not (and (setq pol (car (entsel "\nDesigne la polilínea de borde: ")))
(member (dxf 0 pol) '("LWPOLYLINE" "POLYLINE"))
)
)
)
(if (= (dxf 0 pol) "LWPOLYLINE")
(setq vrt (LstVrt2LWPol pol))
(setq vrt (LstVrt2Pol pol))
)
(setq lyr (append '((-4 . "<or"))
(mapcar (function (lambda (n) (cons 8 n))) (LstLyrUtlAct))
'((-4 . "or>"))
)
)
(initget "V C R")
(if (not (setq ky1 (getkword "\nBorrar por Ventana, Captura o <borrar y Recortar>: ")))
(setq ky1 "R")
)
(initget 1)
(command "_point"
(setq pto (getpoint "\nPrecise punto en el lado a borrar/recortar: "))
)
(setq ssx (ssdel pol (ssget "_x" lyr))
ssv (ssget "_wp" vrt)
ssc (ssdel pol (ssget "_cp" vrt))
n -1
)
(while (setq ent (ssname ssc (setq n (1 n))))
(if (= (dxf 5 (entlast)) (dxf 5 ent))
(setq ky2 T) ;interior
)
)
(cond ((and (or (= ky1 "V") (= ky1 "R")) ky2) (command "_erase" ssv ""))
((or (= ky1 "V") (= ky1 "R")) (command "_erase" ssx "_remove" ssc ""))
((and (= ky1 "C") ky2) (command "_erase" ssc ""))
((= ky1 "C")
(command "_erase" ssx)
(if ssv
(command "_remove" ssv "")
(command "")
)
)
)
(cond ((= ky1 "R") (load "extrim") (etrim pol pto)))
(command "_ucs" "_prev")
(command "_undo" "_end")
(setvar "ucsfollow" old_ucsfollow)
(setvar "highlight" old_highlight)
(setvar "cmdecho" old_cmdecho)
(setq *error* old_error)
(princ)
)
(prompt "\nNuevo comando PolErase definido en AutoCAD - ©2004/09/10 scaner, Spain.")
;
; -- Función *error*
; Tratamiento de errores
;
(defun *error* (msg)
(command "_ucs" "_prev")
(command "_undo" "_end")
(setvar "ucsfollow" old_ucsfollow)
(setvar "highlight" old_highlight)
(setvar "cmdecho" old_cmdecho)
(setq *error* old_error)
)
;
; -- Función LstVrt2LWPol
; Forma una lista con los vértices (x,y) de una polilínea optimizada.
; ©2004/7 scaner, Spain
; Argumentos [Tipo]:
; pol = Nombre de entidad (LWPOLYLINE) [ENAME]
; Retorna [Tipo]:
; > Lista de coordenadas de vértices (x,y)
[LIST]
; Notas:
; Ninguna
;
(defun LstVrt2LWPol (pol / ass lst)
(foreach ass (entget pol)
(if (= (car ass) 10)
(setq lst (cons (cdr ass) lst))
)
)
(reverse lst)
)
;
; -- Función LstVrt2Pol
; Forma una lista con los vértices (x,y) de una 2D/3D polilínea.
; ©2004/7 scaner, Spain
; Argumentos [Tipo]:
; pol = Nombre de entidad (POLYLINE) [ENAME]
; Retorna [Tipo]:
; > Lista de coordenadas de vértices (x,y)
[LIST]
; Notas:
; Ninguna
;
(defun LstVrt2Pol (pol / nxt lst)
(setq nxt (entnext pol))
(while (/= (cdr (assoc 0 (entget nxt))) "SEQEND")
(setq lst (cons (reverse (cdr (reverse (cdr (assoc 10 (entget nxt)))))) lst)
nxt (entnext nxt)
)
)
(reverse lst)
)
;
; -- Función LstLyrUtlAct
; Forma una lista con las capas utilizadas y activadas.
; ©2004/7 scaner, Spain
; Argumentos [Tipo]:
; Ninguno
; Retorna [Tipo]:
; > Lista de nombres de capas
[LIST]
; Notas:
; Las capas se colocan por orden alfabético.
;
(defun LstLyrUtlAct (/ lyr lst)
(setq lyr (tblnext "layer" T))
(while lyr
(if (and (= (logand (cdr (assoc 70 lyr)) 1) 0) (> (cdr (assoc 62 lyr)) 0))
(setq lst (cons (cdr (assoc 2 lyr)) lst))
)
(setq lyr (tblnext "layer"))
)
(acad_strlsort lst)
)
(princ)

Un ejemplo de lo que hace la rutina,

http://img.photobucket.com/albums/v65/scaner/SoloArquitectura/xgbncf.jpg

Un saludo
Scaner

PD. LGOMEZ, Nelson, un gusto ver gente conocida por aquí ;)

javier
22/10/2005, 18:02
bueno, encantado de tener tantas contestaciones sobre este tema que me tenia loco.

lo primero decir que la orden recortar y utilizar borde me tiene loco, no se por den de pillarala, lo intento una y otra vez pero no le pillo sentido, he leido ya varias veces al ayuda y nada, pero no me canso.

lo de insertar la cartografia como ref externea no se habia ocurrido, lo probare,.

lo de espacio papel, lo utlizo todos los dias, lo que pasa que las cartografia q em pasan son muy pesadas y para trabajar en una calle tener todo un miunicipio me parece algo pesado.

y la rutina pues chico la he copiado y puesto en autocad pero la verdad te digo que aun no la he probado, ya contare como va, pero la pinta que tiene es muy buena.


gracias

LGOMEZ
24/10/2005, 15:08
Scaner, bienvenido y gracias por tu aportación, voy a usarla y ya os comentaré si me asalta algua duda. Echaba en falta lo del erase.

javier
24/10/2005, 16:23
hola

la rutina de scaner, fantastica, la unica pega que le encuentro (puede ser que no sepa usarla) es que cuando le dices recortar fuera de la polinea te borra todo lo qu este fuera de la misma, si solo tienes el dibujo a recortar bien, pero como temgas mas cositas pues ya tienes que andar bloquenado capas (por ejemplo)


de todas formas es una maravilla de rutina, dado que recorto mi cartografia en dibujo nuevo y luego empiezo a trabajar.


garcias

me alegro de a ver servido de union entre viejos colegas

LGOMEZ
24/10/2005, 17:24
Como me imaginaba, en algo estoy metiendo la pata.
La Rutina de Scaner, la he metido como autolisp. ¿es correcto?
Y en autocad me dice desconocido.
Por favor, me decís ¿Dónde está el fallo?
Muchas gracias

javier
24/10/2005, 20:48
hola lopez:

aunque paresca una tonteria, haz creado bien el archivo de list, el nombre que quieras seguido de punto y LSP

ejemplo: recortartodo.LSP


en mayusculas a mi en minusculas no me funcionaba.

luego la cargas en autocad mediante herramientas>autolisp>cargara rutina

la cargas en ese dibujo y te aconsejo que lo metas en el maletin de inicio asi seimpre lo tienes cargado


suerte, espero que sea ese el fallo

LGOMEZ
24/10/2005, 21:12
Javier, mucha gracias, lo que me indicas es lo que había hecho.
He probado a ponerlo en mayúsculas y tampoco marcha.
Estoy utilizando el 2005. ¿Podría ser que no le guste ésta versión? Ja,ja,ja

scaner
25/10/2005, 02:32
LGOMEZ, hola

Lo de las mayusculas es indiferente.

¿Tienes cargadas las Express Tools?

Si las tienes cargadas, ¿que error te da?

Un saludo
Scaner

scaner
25/10/2005, 02:41
javier, hola

La rutina esta pensada para recortar un gran número de entidades, de lo contrario con un recorta normal nos valdría.

Para no tener que designar ese gran número de entidades, que según el dibujo puede ser sencillo o muy complicado al estar mezcladas con otras, se utilizan los modificadores de capa.

La rutina no procesa las capas que esten desactivadas y/o inutilizadas.

Como bien dices una capa bloqueada tampoco se procesa, pero resultan un poco molesto los avisos que AutoCAD nos va dando en la línea de comandos, por cada entidad bloqueada.

Un saludo
Scaner

LGOMEZ
25/10/2005, 15:09
Hola Scaner, te cuento:
He hecho un dibujo como el “Original” tuyo, para hacer las líneas quebradas he utilizado polilínea.
Después: Express>Modificar>Recorte especial (ojo esta orden es “Extrim”) no he encontrado la “Etrim”
Aparentemente, solamente utilizando la orden Extrim, me hace lo mismo que en los dibujos que muestras.
Por otro lado he cogido tu rutina y la he llamado “PolErase.lsp”, y la he cargado en autocad.
Cuando la tecleo en comando, me dice desconocido.
¿En que momento hay que utilizar el lsp?

javier
25/10/2005, 15:11
hola

a ver tb utilizo la version 2005 y va muy bien, no se si lo de mayusculas influ o no, a mi si que me influyo, pero chico ya sabeis q esto de la informatica lo q a ti te va bien a mi me va mal, jjajajj


cuando le pones el nombre en el archivo de texto te aparece ya el icono de autolisp? sabes cual es?

puede ayudarno, puede ser q el pc no lo reconozca


miralo

LGOMEZ
25/10/2005, 15:14
Javier, si que aparece el icono de autolips.

javier
25/10/2005, 18:47
hola lgomez:

a ver, no me ha quedado claro, se ha convertido el archivo de texto del block de notas de windows en archivo de autolisp?


se tiene que convertir sino no se carga

siento q pregunte tanto esto pero tuve un pequeño problema con esto mismo y hasta q me di cuenta pase un mal rato


no basta con cambiarle de nombre y ponerle al final lsp

hay que editarlo en el block y en caudro de guardar poner el nombre seguido de lsp

un saludo

LGOMEZ
25/10/2005, 21:20
Hola Javier, te cuento como lo hago:
Ratón>Botón derecho>Nuevo>Documento de texto
(creo entender, que me dices): abro el documento que se llama Documento de texto.txt> pego la rutina>Guardo como>PolErase.lsp
En AutoCad: Le cargo, incluído lo del maletín y me dice que está correctamente cargado.
¿Que estoy haciendo mal? :o
Muchas gracias

javier
25/10/2005, 23:06
la verdad

no lo se, tengo q reconcer que hasta han legado los concomientos que tengo sobre este tema, no se pq pchas no te carga la rutina, pq a mi lo hace de maravilla


lo sinto no pode ayudarte, hasta el momento, prometo investigar


y contare

scaner
26/10/2005, 00:10
LGOMEZ, hola

Vamos a olvidarnos de todo y empezar desde el principio ;)

Como pone en el enunciado de la rutina, para que ésta funcione tenemos que tener instaladas las Express Tools, pero sólo eso, tenerlas instaladas. En este punto no tenemos que preocuparnos de nada más, ni ejecutar ninguna orden de las Express.

1º Nos situamos encima del código (el de mi mensaje) y damos 3 clic con el botón izquierdo del ratón. Con esto se nos ha seleccionado todo el código, sin posibilidad de equivocación.

2º Botón derecho copiar.

3º Abrimos el Bloc de Notas y botón derecho pegar.

3º Seguimos en el Bloc de Notas y ejecutamos Archivo/Guardar como...
Como nombre ponemos PolErase.lsp El nombre puede ser el que queramos, la extensión siempre lsp

4º Ahora vamos a AutoCAD y ejecutamos Herramientas/ Cargar aplicación...

5º Buscamos el archivo que acabamos de crear y pulsamos en Cargar.
Si se quiere se arrastra también al maletín, pero ojo que esto es para los siguientes dibujos que abramos. Para el dibujo actual obligatoriamente hay que Cargar la rutina, no vale sólo con arrastrarla al maletín.

6º Una vez cerrado el cuadro de dialogo, escribimos en la línea de comandos polerase.

Una aclaración. Independientemente de como hayamos nombrado el archivo lsp, la rutina siempre la ejecutaremos con polerase, que si te fijas en el código es la palabra que va después de defun c:
Minúsculas o mayúsculas tanto en el nombre del archivo como en la orden en la línea de comandos, son indiferentes y sin excepciones.

Y si con esto no es suficiente me voy a Madrid y la cargamos aunque sea a palos :p

Un saludo
Scaner

lecorbu
26/10/2005, 10:29
Gracias scaner!!!
Muy interesante la orden.
Siempre he querido programar en lisp, pero no sé por dónde empezar. Cómo empezaste tú?, Hay algún libro que me recomiendes??
Gracias.
Salu2.

LGOMEZ
26/10/2005, 12:22
Javier, muchas gracias, pero está claro que algo hacía mal.
Scaner, el lisp, no le he probado todavía pero como maestro eres el mejor, POR FIN HA SALIDO, creo que lo que no le gusta es que pegaba la rutina en Documento de texto, como decía en algún post anterior, y ahora siguiendo tus instrucciones lo hice en el Bloc de Notas.
Aunque lo he conseguido, puedes venir a Madrid cuando quieras y están invitado a unas copas, muchas gracias.
Scaner, una vez probado te digo es genial, no sabes el trabajo que me va a quitar en este momento, que tengo que sacar habitación por habitación de un hotel, para hacer los alzados de cada una de ellas.

scaner
26/10/2005, 17:23
LGOMEZ, me alegro ;)

lecorbu, hola

Como manual de iniciación básica, te recomiendo
http://usuarios.lycos.es/mecanicad/cursos/curso03/curso03_000.htm

Despues si pudieras conseguir el libro "Manual avanzado v13, volumen II" de Tajadura y López, también esta muy bien y ya es algo más completo.
Te digo "si pudieras" porque está descatalogado.

La ayuda de AutoCAD también es bastante completa. Busca el apartado "Visual Lisp, AutoLisp y DXF".

En el foro de HispaCAD también aprendí mucho. Allí se reunieron un buen número de personas con ganas de enseñar lo que sabían, que no era poco.

Lo mejor que conozco ahora en español es http://www.soportecad.com/foro/ , pero y que nadie se me ofenda, en el apartado de Autolisp / Visual Lisp y salvo contadas excepciones, no es ni sombra de la que en su día represento HispaCAD. Espero que algún día pueda llegar a tener un nivel parecido.

Un saludo
Scaner

LGOMEZ
26/10/2005, 18:14
Espero que algún día pueda llegar a tener un nivel parecido
Yo también lo espero.
Y gracias por los datos para iniciarnos.

lecorbu
26/10/2005, 20:48
Gracias scaner!!
Salu2.

Condiciones de uso | Publicidad | Acerca de | FacebookUnirse a Sólo Arquitectura en Facebook | TwitterSeguir a @SArquitectura en Twitter

Prohibida la reproducción total o parcial sin la autorización previa y por escrito del editor.