Area de polilineas

Dudas y consultas sobre CAD. AutoCAD, Microstation y resto de aplicaciones CAD

Moderador: Moderadores

anagr
Auxiliar
Mensajes: 69
Registrado: Mié Jun 25, 2008 11:08 am
Contactar:

Area de polilineas

Mensaje por anagr »

Hay algun modo de modificar el area de una polilinea que no sea manualmente???
Si lo hay por dios decidmelo que me estoy volviendo loca modificandola vertice a vertice hasta que cuadre

Plannerly ™ La plataforma de gestión BIM ™ SmartLeanBIM® © 2021
Plantillas para crear el Plan de Ejecución BIM (BEP). Cumplimiento de la norma ISO-19650
Plan gratuito en el que puedes acceder a todas las plantillas y si al comprarlo introduces el código DELINEACION obtendrás un 10% de descuento
Avatar de Usuario
Chus
Gran Jefe
Mensajes: 1042
Registrado: Jue May 08, 2008 10:22 pm
Ubicación: Valentia
Contactar:

Re: Area de polilineas

Mensaje por Chus »

anagr escribió:Hay algun modo de modificar el area de una polilinea que no sea manualmente???
Si lo hay por dios decidmelo que me estoy volviendo loca modificandola vertice a vertice hasta que cuadre
Y para que se utiliza la polilinea en las áreas. :roll:

Si es para utilizar con macros, es practico.. :?
luisgi

Mensaje por luisgi »

Hola.. existe la rutina DDAREAR del maestro Dominguez que con designar la polilínea te dice el área y escribe el texto.
http://www.hispacad.com/foro/viewtopic. ... a&start=45
Saludos.
Avatar de Usuario
Chus
Gran Jefe
Mensajes: 1042
Registrado: Jue May 08, 2008 10:22 pm
Ubicación: Valentia
Contactar:

Mensaje por Chus »

luisgi escribió:Hola.. existe la rutina DDAREAR del maestro Dominguez que con designar la polilínea te dice el área y escribe el texto.
http://www.hispacad.com/foro/viewtopic. ... a&start=45
Saludos.
Y todo esto es practico.. despues como dice anagr se modifica manualmente.. vertice a vertice.. pufff... :roll:
anagr
Auxiliar
Mensajes: 69
Registrado: Mié Jun 25, 2008 11:08 am
Contactar:

Mensaje por anagr »

A ver que yo me entienda, la rutina que luisgi menciona yo ya la tengo (weno si no es esa es una igual pero me la pasaron con otro nombre) que para cuando tienes que superficiar muchas cosas si, pero no me sirve para modificar el area de la polilinea sin tener que hacerlo manualmente.
De verdad que no existe nada para no tener que hacer malabares cuadrando el area??????
Avatar de Usuario
Chus
Gran Jefe
Mensajes: 1042
Registrado: Jue May 08, 2008 10:22 pm
Ubicación: Valentia
Contactar:

Mensaje por Chus »

No te puedo ayudar, se que hay unos comandos que calculan la superficie, seleccionando una polilinea. Pense que esto nadie lo utilizaba. No los veo nada utiles. :cry:

Por que cuando tienes que modificar una planta, creo que no interesa, por lo que tu dices, vértice a vértice o volver hacer la polilinea con la orden contorno. Puff que engorro. :roll: :cry:
luisgi

Mensaje por luisgi »

ahh, perdón por no haberte entendido.
Entonces ¿tú lo que quieres es modificar todos los textos de forma automática poniéndoles tú misma el valor que quieras?
anagr
Auxiliar
Mensajes: 69
Registrado: Mié Jun 25, 2008 11:08 am
Contactar:

Mensaje por anagr »

No, a ver si me explico bien.
Yo tengo una polilinea de una parcela que tendria que medir por ejemplo 3410.35m, pero la polilinea no da esa superficie y lo que quiero es saber si hay algun metodo para cuadrar el area de la polilinea con la superficie que me han dado.
luisgi

Mensaje por luisgi »

Ya entiendo..
Y ¿qué lado o lados de la polilínea deberá modificar? porque me imagino que no serán polígonos regulares.
No sé si habrá algo, no entiendo de lisp, pero lo que pides creo que no es poco.
Mientras intentaré buscar por algún lado y si me entero de algo te lo digo.
Suerte.
emercadotecnia2a
En prácticas
Mensajes: 9
Registrado: Lun Jul 21, 2008 5:48 pm
Contactar:

Comentario

Mensaje por emercadotecnia2a »

Hola, espero que esten muy bien todos los del blogs, la verdad es que escribo solo para comentar que recien estoy utilizando el autoCAD y me cuesta un poco, pero me imagino que pasa al comienzo solo espero superarme y cualquier duda ya se las dire.
Plantillas para páginas webs.
http://www.plantillaspaginaswebs.com
Afga
Jefe
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm
Contactar:

Mensaje por Afga »

anagr creo que la aplicación lisp que expongo a continuación y que encontré por internet te servirá para lo que necesitas, quizas no en todo, pero seguro que en parte.

La orden que la ejecuta es DIVAREA.

;;; DIVAREA.LSP Land division utility 
;;; written by Yorgos Angelopoulos 
;;; aggior@panafonet.gr 
;;; ------------------------------------ 
;;; Traducci?n del c?digo original al espa?ol, por Miguel A. L?zaro Mar?n 
;;; http://perso.wanadoo.es/lm2ark 
;;; 
;;; Suponga que usted tiene que dividir una parcela grande de terreno entre 
;;; 2, 3, 4,...(?o incluso dividirla entre 5.014!); o bien se desea cortar 
;;; una porci?n de 2345 m2 para segregarla de la parcela matriz u original. 
;;; 
;;; Todo lo que usted necesita es tener dibujada una "polil?nea optimizada" 
;;; (entidad "LWPOLYLINE", inclu?da en AutoCAD a partir de su versi?n 14), 
;;; que se encuentre CERRADA y que coincida con el per?metro del ?rea total 
;;; de la parcela a dividir. 
;;; 
;;; Cargue la utilidad, despu?s de ponerla en un directorio apropiado, por 
;;; ejemplo el C:\Archivos de programa\AutoCAD 2002 Esp\Support, bien sea 
;;; invocando el comando _APPLOAD o bien mediante (LOAD "DIVAREA"), y tras 
;;; la pertinente carga ejecut?mosla escribiendo DIVAREA en la l?nea de 
;;; comandos. 
;;; 
;;; Conteste a las escasas preguntas que la rutina le ir? formulando y 
;;; RECUERDE: 
;;; 
;;; Cuando le sea solicitado que indique los dos puntos de la l?nea de 
;;; divisi?n aproximada inicial, tenga presente lo siguiente: 
;;; 
;;; 1. Esta L?NEA de DIVISI?N ser? trasladada (en paralelo a la inicial) 
;;; o rotada (en funci?n de la opci?n elegida) durante la ejecuci?n de la 
;;; rutina, de manera que sus puntos inicial y final que fueron se?alados 
;;; para definirla y situarla al inicio deben marcarse teniendo en cuenta 
;;; que, durante las aludidas traslaci?n o rotaci?n, no vayan a pasar hacia 
;;; el interior del contorno definido por la LWPLYLINE (aunque debe resultar 
;;; f?cil superar este inconveniente). Por tanto se aconseja se?alar dichos 
;;; puntos iniciales tan LEJANOS HACIA FUERA del per?metro como sea posible 
;;; sin exceder, por supuesto, el ?rea actual visible de pantalla. 
;;; 
;;; En cuanto al punto o polo FIJO, en caso de que se haya preferido la 
;;; opci?n "F" en lugar de "P" (direcci?n PARALELA) como respuesta a la 
;;; pregunta anterior sobre el modo de generaci?n de la l?nea divisoria, 
;;; dicho punto tiene que residir o bien sobre la polil?nea o bien fuera 
;;; de ella, nunca dentro de la superficie delimitada a dividir. 
;;; 
;;; 2. Al indicar el punto sobre la porci?n en donde se obtendr? el ?rea 
;;; deseada, habr? que se?alarlo DENTRO de dicha porci?n y ALEJADA de la 
;;; l?nea de divisi?n tanto como sea posible, de forma que ese punto no 
;;; llegue a quedar fuera de la porci?n que se va obteniendo a medida que 
;;; la l?nea divisoria se mueve durante su proceso de c?lculo. 
;;; 
;;; 3. Finalmente usted tendr? que indicar exactamente de la misma manera 
;;; un punto de la porci?n restante: DENTRO de ella y ALEJADA de la l?nea 
;;; de divisi?n. 
;;; 
;;; Si se desea mayor precisi?n de c?lculo en la divisi?n del ?rea, se 
;;; pueden disminuir los valores de las variables locales: step1 y step2 
;;; proporcionalmente.  
;;; 
;;;******************LA UTILIDAD COMIENZA AQUI*************************** 
(DEFUN prerr (s
  (
IF (/= s "Function cancelled"
    (
PRINC (STRCAT "\nError: " s)) 
  )
                                     ;end if 
  (SETQ *error* olderr
  (
PRINC
)
                                       ;close defun 
(DEFUN C:DIVAREA (/     osm   strpf strdc ex    arxset      arxlst   arxon 
                  k     scl   ok    d     p1    p2    pts   ptb   deln 
                  ar    par   tem   stp   stp1  stp2 

                 
  (
SETQ olderr  *error* 
        *error* prerr 

  
  (
SETQ osm (GETVAR "osmode")) 
  (
SETVAR "osmode" 0
  (
SETVAR "cmdecho" 0
  (
SETQ ex   
        stp  0.01 
        stp1 0.005 
        stp2 0.0005 
  
  (
SETQ arxset (ENTSEL "\nSeleccione una LWPOLYLINE cerrada como perímetro del área a dividir: ") ;_"\nSelect closed LWPOLY to divide: " 
        arxlst    (ENTGET (CAR arxset)) 
        arxon  (CDR (ASSOC -1 arxlst)) 
  ) 
  (
IF (NOT (AND (EQUAL (CDR (ASSOC 0 arxlst)) "LWPOLYLINE"
                (
= (CDR (ASSOC 70 arxlst)) 1
           ) 
      ) 
    (
PROGN 
      (PRINC "\nDISCULPE, SOLO SE PERMITEN LWPOLYLINES CERRADAS...") ;_"\nSORRY, ONLY CLOSED LWPOLYLINES ALLOWED..." 
      (SETQ ex 1
    ) 
  ) 
  (
IF (= ex 0
    (
PROGN 
      (COMMAND "_undo" "_m")            ;_SI ALGO SALI? MAL, PERMITE DESHACER REGRESANDO AL INICIO - if something goes bad, you may return here 
      (COMMAND "_layer" "_m" "Area_Division" ""
      (
COMMAND "_area" "_o" arxon) ;_;;;(command "_area" "e" arxon) 
      (SETQ ar (GETVAR "area")) 
      (
INITGET "Divide Corta"
      (
SETQ 
        strdc (GETKWORD "\nDIVIDE por número de partes o [CORTA una superficie conocida]? (D/C): ") ;_"\nDIVIDE by number or CUT a part ? (D/C) :" 
      
      (
IF (= strdc "Divide"
        (
PROGN 
          (SETQ 
                 (GETREAL "\nIntroduzca número por el que dividir el total: ") ;_"\nEnter number to divide the whole part by : " 
          
          (
SETQ tem (/ ar k)) 
        ) 
      ) 
      (
IF (= strdc "Corta"
        (
SETQ tem 
               (GETREAL "\nIntroduzca el área a cortar del total (m2): ") ;_"\nEnter area to cut from the whole part (m2) : " 
        
      ) 
      (
INITGET "Paralela Fijo"
      (
SETQ strpf (GETKWORD 
                    "\nL?nea de corte PARALELA a una dirección o [por un polo FIJO]? (P/F) :" ;_"\nPARALLEL to a direction or FIXED side? (P/F) :" 
                  
      ) 
      (
IF (= strpf "Fijo"
        (
fixpt
      ) 
      (
IF (= strpf "Paralela"
        (
parpt
      ) 
      (
ready
    ) 
    (
ready
  ) 

;;;****************************************************************************** 
(DEFUN fixpt () 
  (
SETVAR "osmode" osm
  (
SETQ scl 0.05 
        p1  (GETPOINT "\nSeñale el polo fijo por el que pasará la línea de división: ") ;_"\nPick fixed point of the division line : " 
        p2  (GETPOINT "\nSeñale el segundo punto inicial de la línea de división: ") ;_"\nPick second point of division line: " 
  
  (
SETVAR "osmode" 0
  (
COMMAND "_line" p1 p2 ""
  (
SETQ deln (ENTLAST)) 
  (
SETQ pts 
         (GETPOINT 
           "\nEscoja un punto DENTRO de la porción a obtener y ALEJADO de la línea divisoria: " 
         ) ;_"\nPick any point into FIRST piece, FAR from division line: " 
  
  (
SETQ ptb 
         (GETPOINT 
           "\nEscoja cualquier punto del RESTO del área y ALEJADO de la línea divisoria: " 
         ) ;_"\nPick any point into the REST of the piece, FAR from division line: " 
  
  (
SETVAR "blipmode" 0
  (
PRINC "\nPor favor, espere...") ;_"\nPlease wait..." 
  (COMMAND "_boundary" pts ""
  (
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l") 
  (SETQ par (GETVAR "area")) 
  (
SETQ ok -1
  (
IF (< par tem
    (
PROGN 
      (WHILE (< par tem
        (
ENTDEL (ENTLAST)) 
        (
IF (< (- tem par) 50
          (
SETQ scl stp
        ) 
        (
IF (< (- tem par) 10
          (
SETQ scl stp2
        ) 
        (
COMMAND "_rotate" deln "" p1 (* scl ok)) 
        (
COMMAND "_boundary" pts ""
        (
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l") 
        (IF (</color> par tem
        (
ENTDEL (ENTLAST)) 
        (
IF (< (- par tem) 50
          (
SETQ scl stp
        ) 
        (
IF (</color> (GETVAR "area") par
          (
SETQ ok (* ok -1)) 
        ) 
        (
SETQ par (GETVAR "area")) 
      )
                                 ;endwhile 
      (ENTDEL deln
    ) 
  ) 
  (
COMMAND "_change" "_l" "" "_p" "_c" "_green" ""
  (
COMMAND "_boundary" ptb ""
  (
COMMAND "_change" "_l" "" "_p" "_c" "_red" ""
  (
ready

;;;****************************************************************************** 
(DEFUN parpt () 
  (
SETVAR "osmode" osm
  (
SETQ scl 0.25 
        p1  (GETPOINT 
              "\nSeñale un punto de la línea divisoria (alejado de la LWPOLYLINE): " 
            ) ;_"\nPick one point of division line (far from lwpoly) : " 
        p2  (GETPOINT 
              "\nSeñale otro punto de la línea divisoria (alejado de la LWPOLYLINE): " 
            ) ;_"\nPick other point of division line (far from lwpoly) : " 
  
  (
SETVAR "osmode" 0
  (
COMMAND "_line" p1 p2 ""
  (
SETQ deln (ENTLAST)) 
  (
SETQ pts 
         (GETPOINT 
           "\nEscoja un punto DENTRO de la porción a obtener y ALEJADO de la línea divisoria: " 
         ) ;_"\nPick any point into FIRST piece, FAR from division line: " 
  
  (
SETQ ptb 
         (GETPOINT 
           "\nEscoja cualquier punto del RESTO del área y ALEJADO de la línea divisoria: " 
         ) ;_"\nPick any point into the REST of the piece, FAR from division line: " 
  
  (
SETVAR "blipmode" 0
  (
PRINC "\nPor favor, espere...") ;_"\nPlease wait..." 
  (COMMAND "_boundary" pts ""
  (
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l") 
  (SETQ par (GETVAR "area")) 
  (
IF (< par tem
    (
PROGN 
      (WHILE (< par tem
        (
ENTDEL (ENTLAST)) 
        (
IF (< (- tem par) 50
          (
SETQ scl stp1
        ) 
        (
IF (</color> par tem
        (
ENTDEL (ENTLAST)) 
        (
IF (< (- par tem) 50
          (
SETQ scl stp1
        ) 
        (
IF (< (- par tem) 10
          (
SETQ scl stp2
        ) 
        (
COMMAND "_offset" scl deln pts "") ;_ 
        (ENTDEL deln
        (
SETQ deln (ENTLAST)) 
        (
COMMAND "_boundary" pts ""
        (
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l") 
        (SETQ par (GETVAR "area")) 
      ) 
      (
ENTDEL deln
    ) 
  ) 
  (
COMMAND "_change" "_l" "" "_p" "_c" "_green" ""
  (
COMMAND "_boundary" ptb ""
  (
COMMAND "_change" "_l" "" "_p" "_c" "_red" ""

;;;****************************************************************************** 
(DEFUN ready () 
  (
PRINC scl
  (
PRINC "\nObtenido : "
  (
PRINC par
  (
PRINC "\nDeb?a ser: ") ;_"\nMust be: " 
  (PRINC tem
  (
SETQ *error* olderr
  (
SETVAR "osmode" osm
  (
SETVAR "cmdecho" 1
  (
SETVAR "blipmode" 1
  (
PRINC "\nGracias...") ;_"\nThanks..." 
  (PRINC
)
                                       ;close defu



P.D.: emercadotecnia2a seas bienvenido, pero por favor leete las normas del foro, y no mezclemos los temas que se tratan, ni tratar de repertirlos. Puedes presentarte en el post de off topic como han hecho otros usuarios. Gracias y bienvenido nuevamente. :wink:
luisgi

Mensaje por luisgi »

Hola de nuevo..
encontré esto:
http://www.hispacad.com/foro/viewtopic. ... ficar+area
que creo que es más o menos lo que quieres, lo que pasa es que tienes que saber el factor de escala existente entre una superficie y otra, con saber esto, cargas la rutina, te pregunta el factor de escala, seleccionas la polilínea y te crea la nueva superficie.
Suerte.
anagr
Auxiliar
Mensajes: 69
Registrado: Mié Jun 25, 2008 11:08 am
Contactar:

Mensaje por anagr »

Afga escribió:anagr creo que la aplicación lisp que expongo a continuación y que encontré por internet te servirá para lo que necesitas, quizas no en todo, pero seguro que en parte.

La orden que la ejecuta es DIVAREA.

;;; DIVAREA.LSP Land division utility
;;; written by Yorgos Angelopoulos
;;; aggior@panafonet.gr
;;; ------------------------------------
;;; Traducci?n del c?digo original al espa?ol, por Miguel A. L?zaro Mar?n
;;; http://perso.wanadoo.es/lm2ark
;;;
;;; Suponga que usted tiene que dividir una parcela grande de terreno entre
;;; 2, 3, 4,...(?o incluso dividirla entre 5.014!); o bien se desea cortar
;;; una porci?n de 2345 m2 para segregarla de la parcela matriz u original.
;;;
;;; Todo lo que usted necesita es tener dibujada una "polil?nea optimizada"
;;; (entidad "LWPOLYLINE", inclu?da en AutoCAD a partir de su versi?n 14),
;;; que se encuentre CERRADA y que coincida con el per?metro del ?rea total
;;; de la parcela a dividir.
;;;
;;; Cargue la utilidad, despu?s de ponerla en un directorio apropiado, por
;;; ejemplo el C:\Archivos de programa\AutoCAD 2002 Esp\Support, bien sea
;;; invocando el comando _APPLOAD o bien mediante (LOAD "DIVAREA"), y tras
;;; la pertinente carga ejecut?mosla escribiendo DIVAREA en la l?nea de
;;; comandos.
;;;
;;; Conteste a las escasas preguntas que la rutina le ir? formulando y
;;; RECUERDE:
;;;
;;; Cuando le sea solicitado que indique los dos puntos de la l?nea de
;;; divisi?n aproximada inicial, tenga presente lo siguiente:
;;;
;;; 1. Esta L?NEA de DIVISI?N ser? trasladada (en paralelo a la inicial)
;;; o rotada (en funci?n de la opci?n elegida) durante la ejecuci?n de la
;;; rutina, de manera que sus puntos inicial y final que fueron se?alados
;;; para definirla y situarla al inicio deben marcarse teniendo en cuenta
;;; que, durante las aludidas traslaci?n o rotaci?n, no vayan a pasar hacia
;;; el interior del contorno definido por la LWPLYLINE (aunque debe resultar
;;; f?cil superar este inconveniente). Por tanto se aconseja se?alar dichos
;;; puntos iniciales tan LEJANOS HACIA FUERA del per?metro como sea posible
;;; sin exceder, por supuesto, el ?rea actual visible de pantalla.
;;;
;;; En cuanto al punto o polo FIJO, en caso de que se haya preferido la
;;; opci?n "F" en lugar de "P" (direcci?n PARALELA) como respuesta a la
;;; pregunta anterior sobre el modo de generaci?n de la l?nea divisoria,
;;; dicho punto tiene que residir o bien sobre la polil?nea o bien fuera
;;; de ella, nunca dentro de la superficie delimitada a dividir.
;;;
;;; 2. Al indicar el punto sobre la porci?n en donde se obtendr? el ?rea
;;; deseada, habr? que se?alarlo DENTRO de dicha porci?n y ALEJADA de la
;;; l?nea de divisi?n tanto como sea posible, de forma que ese punto no
;;; llegue a quedar fuera de la porci?n que se va obteniendo a medida que
;;; la l?nea divisoria se mueve durante su proceso de c?lculo.
;;;
;;; 3. Finalmente usted tendr? que indicar exactamente de la misma manera
;;; un punto de la porci?n restante: DENTRO de ella y ALEJADA de la l?nea
;;; de divisi?n.
;;;
;;; Si se desea mayor precisi?n de c?lculo en la divisi?n del ?rea, se
;;; pueden disminuir los valores de las variables locales: step1 y step2
;;; proporcionalmente.
;;;
;;;******************LA UTILIDAD COMIENZA AQUI***************************
(DEFUN prerr (s)
(
IF (/= s "Function cancelled")
(
PRINC (STRCAT "\nError: " s))
)
;end if
(SETQ *error* olderr)
(
PRINC)
)
;close defun
(DEFUN C:DIVAREA (/ osm strpf strdc ex arxset arxlst arxon
k scl ok d p1 p2 pts ptb deln
ar par tem stp stp1 stp2

)
(
SETQ olderr *error*
*error* prerr

)
(
SETQ osm (GETVAR "osmode"))
(
SETVAR "osmode" 0)
(
SETVAR "cmdecho" 0)
(
SETQ ex 0
stp 0.01
stp1 0.005
stp2 0.0005
)
(
SETQ arxset (ENTSEL "\nSeleccione una LWPOLYLINE cerrada como perímetro del área a dividir: ") ;_"\nSelect closed LWPOLY to divide: "
arxlst (ENTGET (CAR arxset))
arxon (CDR (ASSOC -1 arxlst))
)
(
IF (NOT (AND (EQUAL (CDR (ASSOC 0 arxlst)) "LWPOLYLINE")
(
= (CDR (ASSOC 70 arxlst)) 1)
)
)
(
PROGN
(PRINC "\nDISCULPE, SOLO SE PERMITEN LWPOLYLINES CERRADAS...") ;_"\nSORRY, ONLY CLOSED LWPOLYLINES ALLOWED..."
(SETQ ex 1)
)
)
(
IF (= ex 0)
(
PROGN
(COMMAND "_undo" "_m") ;_SI ALGO SALI? MAL, PERMITE DESHACER REGRESANDO AL INICIO - if something goes bad, you may return here
(COMMAND "_layer" "_m" "Area_Division" "")
(
COMMAND "_area" "_o" arxon) ;_;;;(command "_area" "e" arxon)
(SETQ ar (GETVAR "area"))
(
INITGET "Divide Corta")
(
SETQ
strdc (GETKWORD "\nDIVIDE por número de partes o [CORTA una superficie conocida]? (D/C): ") ;_"\nDIVIDE by number or CUT a part ? (D/C) :"
)
(
IF (= strdc "Divide")
(
PROGN
(SETQ k
(GETREAL "\nIntroduzca número por el que dividir el total: ") ;_"\nEnter number to divide the whole part by : "
)
(
SETQ tem (/ ar k))
)
)
(
IF (= strdc "Corta")
(
SETQ tem
(GETREAL "\nIntroduzca el área a cortar del total (m2): ") ;_"\nEnter area to cut from the whole part (m2) : "
)
)
(
INITGET "Paralela Fijo")
(
SETQ strpf (GETKWORD
"\nL?nea de corte PARALELA a una dirección o [por un polo FIJO]? (P/F) :" ;_"\nPARALLEL to a direction or FIXED side? (P/F) :"
)
)
(
IF (= strpf "Fijo")
(
fixpt)
)
(
IF (= strpf "Paralela")
(
parpt)
)
(
ready)
)
(
ready)
)
)

;;;******************************************************************************
(DEFUN fixpt ()
(
SETVAR "osmode" osm)
(
SETQ scl 0.05
p1 (GETPOINT "\nSeñale el polo fijo por el que pasará la línea de división: ") ;_"\nPick fixed point of the division line : "
p2 (GETPOINT "\nSeñale el segundo punto inicial de la línea de división: ") ;_"\nPick second point of division line: "
)
(
SETVAR "osmode" 0)
(
COMMAND "_line" p1 p2 "")
(
SETQ deln (ENTLAST))
(
SETQ pts
(GETPOINT
"\nEscoja un punto DENTRO de la porción a obtener y ALEJADO de la línea divisoria: "
) ;_"\nPick any point into FIRST piece, FAR from division line: "
)
(
SETQ ptb
(GETPOINT
"\nEscoja cualquier punto del RESTO del área y ALEJADO de la línea divisoria: "
) ;_"\nPick any point into the REST of the piece, FAR from division line: "
)
(
SETVAR "blipmode" 0)
(
PRINC "\nPor favor, espere...") ;_"\nPlease wait..."
(COMMAND "_boundary" pts "")
(
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l")
(SETQ par (GETVAR "area"))
(
SETQ ok -1)
(
IF (< par tem)
(
PROGN
(WHILE (< par tem)
(
ENTDEL (ENTLAST))
(
IF (< (- tem par) 50)
(
SETQ scl stp)
)
(
IF (< (- tem par) 10)
(
SETQ scl stp2)
)
(
COMMAND "_rotate" deln "" p1 (* scl ok))
(
COMMAND "_boundary" pts "")
(
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l")
(IF (</color> par tem)
(
ENTDEL (ENTLAST))
(
IF (< (- par tem) 50)
(
SETQ scl stp)
)
(
IF (</color> (GETVAR "area") par)
(
SETQ ok (* ok -1))
)
(
SETQ par (GETVAR "area"))
)
;endwhile
(ENTDEL deln)
)
)
(
COMMAND "_change" "_l" "" "_p" "_c" "_green" "")
(
COMMAND "_boundary" ptb "")
(
COMMAND "_change" "_l" "" "_p" "_c" "_red" "")
(
ready)
)

;;;******************************************************************************
(DEFUN parpt ()
(
SETVAR "osmode" osm)
(
SETQ scl 0.25
p1 (GETPOINT
"\nSeñale un punto de la línea divisoria (alejado de la LWPOLYLINE): "
) ;_"\nPick one point of division line (far from lwpoly) : "
p2 (GETPOINT
"\nSeñale otro punto de la línea divisoria (alejado de la LWPOLYLINE): "
) ;_"\nPick other point of division line (far from lwpoly) : "
)
(
SETVAR "osmode" 0)
(
COMMAND "_line" p1 p2 "")
(
SETQ deln (ENTLAST))
(
SETQ pts
(GETPOINT
"\nEscoja un punto DENTRO de la porción a obtener y ALEJADO de la línea divisoria: "
) ;_"\nPick any point into FIRST piece, FAR from division line: "
)
(
SETQ ptb
(GETPOINT
"\nEscoja cualquier punto del RESTO del área y ALEJADO de la línea divisoria: "
) ;_"\nPick any point into the REST of the piece, FAR from division line: "
)
(
SETVAR "blipmode" 0)
(
PRINC "\nPor favor, espere...") ;_"\nPlease wait..."
(COMMAND "_boundary" pts "")
(
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l")
(SETQ par (GETVAR "area"))
(
IF (< par tem)
(
PROGN
(WHILE (< par tem)
(
ENTDEL (ENTLAST))
(
IF (< (- tem par) 50)
(
SETQ scl stp1)
)
(
IF (</color> par tem)
(
ENTDEL (ENTLAST))
(
IF (< (- par tem) 50)
(
SETQ scl stp1)
)
(
IF (< (- par tem) 10)
(
SETQ scl stp2)
)
(
COMMAND "_offset" scl deln pts "") ;_
(ENTDEL deln)
(
SETQ deln (ENTLAST))
(
COMMAND "_boundary" pts "")
(
COMMAND "_area" "_o" "_l") ;_;;;(command "_area" "e" "l")
(SETQ par (GETVAR "area"))
)
(
ENTDEL deln)
)
)
(
COMMAND "_change" "_l" "" "_p" "_c" "_green" "")
(
COMMAND "_boundary" ptb "")
(
COMMAND "_change" "_l" "" "_p" "_c" "_red" "")
)

;;;******************************************************************************
(DEFUN ready ()
(
PRINC scl)
(
PRINC "\nObtenido : ")
(
PRINC par)
(
PRINC "\nDeb?a ser: ") ;_"\nMust be: "
(PRINC tem)
(
SETQ *error* olderr)
(
SETVAR "osmode" osm)
(
SETVAR "cmdecho" 1)
(
SETVAR "blipmode" 1)
(
PRINC "\nGracias...") ;_"\nThanks..."
(PRINC)
)
;close defu



P.D.: emercadotecnia2a seas bienvenido, pero por favor leete las normas del foro, y no mezclemos los temas que se tratan, ni tratar de repertirlos. Puedes presentarte en el post de off topic como han hecho otros usuarios. Gracias y bienvenido nuevamente. :wink:
Bueno, puede que parezca algo torpe (si es asi lo tengo asumido) pero ya puestos si me explicas que tengo que hacer con todo esto que has puesto ahi me haces una reina
Afga
Jefe
Mensajes: 886
Registrado: Lun Sep 04, 2006 4:10 pm
Contactar:

Mensaje por Afga »

Anagr, lo que he expuesto es una aplicación lisp, es decir, un pequeño programa para divir polilineas en areas y subdivisiones concretas.

Para usarla y ejecutarla, leete lo que ya se explico de como hacerlo en el siguiente enlace;

http://foro.delineacion.org/viewtopic.php?t=346


Saludos
anagr
Auxiliar
Mensajes: 69
Registrado: Mié Jun 25, 2008 11:08 am
Contactar:

Mensaje por anagr »

Afga escribió:Anagr, lo que he expuesto es una aplicación lisp, es decir, un pequeño programa para divir polilineas en areas y subdivisiones concretas.

Para usarla y ejecutarla, leete lo que ya se explico de como hacerlo en el siguiente enlace;

http://foro.delineacion.org/viewtopic.php?t=346


Saludos
Muchas gracias. Me pongo con ello ahora y ya os comentare que tal me ha ido
Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 67 invitados