Ver versión completa : AutoCAD: orden recortar
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.
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.
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).
Otra forma inserta tu cartografia en model y luego en paper usas ventanas poligonales donde muestres solo lo que quieras ver.
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í ;)
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
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.
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
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
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
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
LGOMEZ, hola
Lo de las mayusculas es indiferente.
¿Tienes cargadas las Express Tools?
Si las tienes cargadas, ¿que error te da?
Un saludo
Scaner
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
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?
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
Javier, si que aparece el icono de autolips.
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
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
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
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
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.
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.
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
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.
Con la tecnología de vBulletin® versión 4.1.12. Copyright © 2012 vBulletin Solutions, Inc. Todos los derechos reservados.