acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

ahora me toca a mi.

3 participantes

Ir abajo

ahora me toca a mi. Empty ahora me toca a mi.

Mensaje por devitg Mar Jun 12, 2018 8:22 pm

El el 2000 , mi hija comenzó estudiar para  Ing Agrimensor, así se llama en Argentina , al profesional que hace las mensuras de los terrenos y firma los planos para su posterior registro de la propiedad y/o traslación de dominio.

Esto viene a cuento , ya que en ese momento +/- me puse a estudiar el LISP, ya había hecho algo similar en SCRIPT, para planchetas catastrales en papel , para pasarlas a DWG, con la idea de ser el CADISTA de mi futura ing Agrimensora, ya hace como 4 años que obtuvo el grado , pero siempre trabajó en la parte legal de la profesión , nunca hizo mucho de DWG .

Ahora resulta que quiere empezar a trabajar sobre el ACAD, y su mayor consideración o necesidad , es saber si lo que está , tanto en imagen digitalizada , como en DWG , es si los datos de los terrenos o lotes son exactos en cuanto a si cierran o no el polígono  de límites
En cuanto a las unidades , trabajan los terrenos urbanos al cm , 0.01 m y los ángulos al minuto , y para rurales , al mm 0.001 m y segundo en ángulos.
 Y tiene una cierta tolerancia en la distancia entre el punto inicial y el final del polígono. Digamos un delta X , Delta Y .
Digamos que en papel , o en DWG , el cadista "arregló" el mismo para que le diera cerrado , pero puede no ser así.

Demás está decir que a mí me llegó el VIEJAZO,  dentro de poco cumplo mis 70 años, y/o la poca gana de devanarme los sesos tratando de hacer un lisp que le permita verificar los datos .

Ahora viene el pedido. Alguien tiene algo parecido a lo que pido, los datos son los lados y el ángulo interno de cada vértice. Voy a adjuntar un DWG en formato ZIP para que vean de que se trata.

En la imagen , el terreno no está N-S , no hace falta que el DWG de comprobación respete la orientación , basta saber si cierra o en cuánto difieren los XYinic del XYFinal
Archivos
ahora me toca a mi. Attachment
lote24 - Standard.zip No tienes los permisos para descargar los archivos.(879 KB) Descargado 4 veces
ahora me toca a mi. Attachment
lote 24.GIF No tienes los permisos para descargar los archivos.(50 KB) Descargado 8 veces

devitg
Admin

Mensajes : 259
Fecha de inscripción : 16/03/2016
Edad : 76
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por robierzo Miér Jun 13, 2018 8:25 am

Así, a priori, no parece complicado comprobarlo, yo no tengo nada parecido, pero para hacer un lisp, yo lo que haría sería lo siguiente:

1º-. Crear una lista con los datos de entrada: ((agn1, dist1)(ang2, dist2).....). Habría que meter los datos siempre en sentido horario o antihorario, pero yo creo que es conveniente fijar esa condición, para hacerlo más fácil.

2º-. Hacemos una primera comprobación de los ángulos. El sumatorio de los ángulos debe ser igual al número de ángulos menos 2, multiplicado por 180 ---> Sum. angulos = (nº angulos - 2) x 180
Si esto no se cumple, el polígono es abierto.

3º-. Con la lista creada en el punto 1º, dibujamos el polígono correspondiente, partiendo de un punto cualquiera, y vemos si las coordenadas inicial y final son iguales.

Como digo, a priori, no parece complicado.
Quizás no haría falta dibujar el polígono, pero eso habría que "googlear" para ver si es posible realizar la comprobación de forma numérica. Al igual que se comprueba si es cerrado mediante la suma de ángulos (punto 2º), quizás se podría comprobar el tema de las distancias......
robierzo
robierzo

Mensajes : 104
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por devitg Miér Jun 13, 2018 2:00 pm

Robierzo , gracias

El tema es que al estar los ang , expresados hasta inuto NNdMMm, en la suma se pierden los segundos , luego la comprobación de la suma no daría-
Voy a ver cómo lo sigo.

devitg
Admin

Mensajes : 259
Fecha de inscripción : 16/03/2016
Edad : 76
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por bernie67 Miér Jun 13, 2018 9:37 pm

Mi estimado compañero de foro, no lo he usado pero hay un programa llamado Topocal que de pronto te sea útil.
http://www.topocal.com/indexmod.php?mod=descarga2005
Saludos y ojala sea lo que necesites
Bernardo Corradine M
bernie67
bernie67

Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 57
Localización : Bogota DC-Colombia

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por robierzo Miér Jun 13, 2018 11:57 pm

Esto debería servirte. Ya lo adaptas a tus necesidades.
Los ángulos se meten separando los grados minutos y segundos con espacios.
Ej.: 42º36'12" lo meteríamos como "42 36 12"

En principio funciona igual a derechas que a izquierdas.
Al final se realiza una comparativa, con margen de error de 2 milímetros. Dado que los ángulos se establecen con precisión de segundos redondeados, a veces este margen de error de 2 milímetros no es suficiente y nos dice que no está cerrado.......

bueno, la aplicación funciona, otra cosa es que tú la adaptes según te convenga......

Código:
(defun c:pac ();poligono abierto o cerrado???
  (setq l nil l1 nil l2 nil)
  (setq ang_int T)
  (while ang_int
    (setq ang_int(getstring T "\nAngulo interior: ")) ;grados, minutos y segundos separados por espacios
    (cond ((= ang_int "") (setq ang_int nil))
          ((/= ang_int "")
   (setq dist (getdist "\nDistancia: "))
   (setq l (cons (list ang_int dist) l))
  )
    );fin COND  
  );fin While
  (setq l (reverse l))
  ;conversion a radianes
  (setq n 1)
  (foreach elem l
    (setq ang_int (car elem));angulo sexagesimal en formato texto
    (setq dist (cadr elem))
    (setq grados (atoi ang_int))
    (setq minutos (atoi (vl-string-left-trim (itoa grados) ang_int)))
    (setq segundos (atoi (vl-string-left-trim (strcat (itoa grados) " " (itoa minutos)) ang_int)))
    
    (setq ang_radianes(angtof (strcat (itoa grados) "d" (itoa minutos) "'" (itoa segundos) """) 1))
    (cond ((= n 1)
   (setq az ang_radianes)
   (setq l1 (cons (list az dist) l1))
  )
  ((/= n 1)
   (setq az (+ az pi ang_radianes))
   (if (> az (* 2 pi)) (setq az (- az (* 2 pi))))
   (setq l1 (cons (list az dist) l1))
  )
    );fin CON
    (setq n (1+ n))
  );fin FOREACH
  (setq l1 (reverse l1))
  
  ;creamos lista con las coordenadas de los puntos
  (setq pt '(0.0 0.0))
  (setq l2 (cons pt l2))
  (foreach elem l1
    (setq inc_x (* (sin (car elem)) (cadr elem)))
    (setq inc_y (* (cos (car elem)) (cadr elem)))
    (setq pt (mapcar '+ pt (list inc_x inc_y)))
    (setq l2 (cons pt l2))
  )
  (setq l2 (reverse l2));lista con las coordenadas de todos los puntos

  ;resultado, con un margen de error de 2 milímetros
  
  (if (equal (car l2) (last l2) 0.002) (alert "El polígono SÍ es cerrado") (alert "El polígono NO es cerrado"))
  (setq incr_X (rtos (abs (- (caar l2) (car(last l2)))) 2 3))
  (setq incr_Y (rtos (abs (- (cadar l2) (cadr(last l2)))) 2 3))
  
  (alert (strcat "Incr. X = " incr_X "\n" "Incr. Y = " incr_Y))
)
robierzo
robierzo

Mensajes : 104
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por devitg Jue Jun 14, 2018 12:31 am

Voy a probarlo . Gracias

devitg
Admin

Mensajes : 259
Fecha de inscripción : 16/03/2016
Edad : 76
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por devitg Jue Jun 14, 2018 1:16 am

Hay un error en esta línea

Código:
(setq ang_radianes(angtof (strcat (itoa grados) "d" (itoa minutos) "'" (itoa segundos) """) 1))

Para escribir el "  hay que poner una barra invertida delante del "

Código:
"\""

entonces debe quedar queda así

Código:
(setq ang_radianes(angtof (strcat (itoa grados) "d" (itoa minutos) "'" (itoa segundos) "\"") 1))

Por ahora sigo probando , pero parece que funciona
Gracias

devitg
Admin

Mensajes : 259
Fecha de inscripción : 16/03/2016
Edad : 76
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

ahora me toca a mi. Empty Re: ahora me toca a mi.

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.