como dibujar lotes con datos de una imagen
5 participantes
Página 1 de 1.
como dibujar lotes con datos de una imagen
Hola amigos , como lo he comentado, nunca supe DIBUJAR en ACAD .
Hoy estoy tratando de dibujar los lotes teniendo los datos de longitud de cada lado y el ángulo interno.
Mis datos son lado y el ang interno al lado de la derecha ,
vertice long d.xxxxx radian
1 181.91 0 0
2 230.26 85.05972222 1.484572214
3 79.44 172.0113889 3.002165087
4 147.86 161.0922222 2.811589677
5 278.74 43.53611111 0.759848482
6 159.8 171.81 2.998650188
Espero su guía , ya sea en un LISP , o un SCR
Adjunto imagen del lote
Hoy estoy tratando de dibujar los lotes teniendo los datos de longitud de cada lado y el ángulo interno.
Mis datos son lado y el ang interno al lado de la derecha ,
vertice long d.xxxxx radian
1 181.91 0 0
2 230.26 85.05972222 1.484572214
3 79.44 172.0113889 3.002165087
4 147.86 161.0922222 2.811589677
5 278.74 43.53611111 0.759848482
6 159.8 171.81 2.998650188
Espero su guía , ya sea en un LISP , o un SCR
Adjunto imagen del lote
- Archivos
Última edición por devitg el Lun Jun 06, 2022 3:33 am, editado 1 vez (Razón : correccion)
Re: como dibujar lotes con datos de una imagen
Buenas. En la imagen que adjuntas no se ve nada. Está todo muy borroso.
LA imagen no importa
Hola Robierzo , gracias por ver el tema.robierzo escribió:Buenas. En la imagen que adjuntas no se ve nada. Está todo muy borroso.
Lo que yo tengo son las distancias y ángulos interiores del polígono .
supongamos que el lado 1 2 , esté en 000 a 181.91 0 0 , horizontal y de allí sale el resto de los lados con sus ángulos internos en sentido contra reloj.
Esto es como la primer tarea para un dibujante que recién se inicia , que en este caso soy yo porque nunca lo hizo.
Me interesa un lisp que mediante la lectura de un CSV con esos datos , dibuje dicho polígono .
O el modo de generar un SCR desde XLS
adjunto de nuevo la imagen
- Archivos
Última edición por devitg el Lun Jun 06, 2022 6:50 pm, editado 2 veces (Razón : agregado y correcciones)
Re: como dibujar lotes con datos de una imagen
Hola a tod@s
devitg: Antes que nada, no tengo el lisp (o el script) que solicitaste.
Peeeero, no es muy difícil de dibujar "a mano". Básicamente se trata de redefinir el UCS en cada vértice.
Si uno dibuja un polígono "every Bishop's death" vale la pena.
Fijate en este tutorial de Youtube en inglés. Lo explican paso a paso. Y le funcionan los subtítulos: https://www.youtube.com/watch?v=9I_Ttr0HD_o
Ojalá sirva, al menos hasta que aparezca un lisp.
Saludos
devitg: Antes que nada, no tengo el lisp (o el script) que solicitaste.
Peeeero, no es muy difícil de dibujar "a mano". Básicamente se trata de redefinir el UCS en cada vértice.
Si uno dibuja un polígono "every Bishop's death" vale la pena.
Fijate en este tutorial de Youtube en inglés. Lo explican paso a paso. Y le funcionan los subtítulos: https://www.youtube.com/watch?v=9I_Ttr0HD_o
Ojalá sirva, al menos hasta que aparezca un lisp.
Saludos
jademar- Mensajes : 24
Fecha de inscripción : 03/04/2016
Re: como dibujar lotes con datos de una imagen
Hola de nuevo
Adjunto rutina que traza el polígono a partir de ángulos interiores.
El primer ángulo no es interior, está referido al primer lado que se traza respecto de una vertical, el Norte. O de una horizontal.
Evita tener que cambiar de UCS en cada vértice.
La encontré en 2010 sin mención de autor en Internet. Y ahora la reencontré en mis Backups
Los ángulos se ingresan en formato decimal
La salida es algo improlija, y encima deja Blipmode en ON. Pero funciona en Acad 2007 inglés.
Copio del historial de órdenes
Command: po
Indique punto de inicio del poligono:
Distancia: 69.83
Rumbo: 14.0379
Distancia: 69.25
Angulo interno: 61.1151
Distancia: 50
Angulo interno: 104.8470
Distancia: 50
Angulo interno: 90
Distancia:
Angulo interno:
Zero length line created at (118.9732, 10.0488, 0.0000)
Command:
Saludos
Adjunto rutina que traza el polígono a partir de ángulos interiores.
El primer ángulo no es interior, está referido al primer lado que se traza respecto de una vertical, el Norte. O de una horizontal.
Evita tener que cambiar de UCS en cada vértice.
La encontré en 2010 sin mención de autor en Internet. Y ahora la reencontré en mis Backups
Los ángulos se ingresan en formato decimal
La salida es algo improlija, y encima deja Blipmode en ON. Pero funciona en Acad 2007 inglés.
Copio del historial de órdenes
Command: po
Indique punto de inicio del poligono:
Distancia: 69.83
Rumbo: 14.0379
Distancia: 69.25
Angulo interno: 61.1151
Distancia: 50
Angulo interno: 104.8470
Distancia: 50
Angulo interno: 90
Distancia:
Angulo interno:
Zero length line created at (118.9732, 10.0488, 0.0000)
Command:
- Código:
(DEFUN c:po (/ control dis1 dis2 angant1 angant2 ang1 ang2 ang3 pto)
(GRAPHSCR)
(SETVAR "blipmode" 0) (SETVAR "cmdecho" 0)
(SETQ ini (GETPOINT "Indique punto de inicio del poligono: ")) (TERPRI)
(SETQ dis (GETREAL "Distancia: "))
(SETQ rum (GETANGLE "Rumbo: "))
(SETQ dist (RTOS dis 2 2))
(SETQ rumb (ANGTOS rum 1 4))
(SETQ pto (STRCAT "@" dist "<" rumb))
(COMMAND "line" ini pto "")
(SETQ control T)
(WHILE control
(SETQ angant1 (GETVAR "lastangle"))
(SETQ dis1 (GETREAL "Distancia: "))
(SETQ ang1 (GETANGLE "Angulo interno: "))
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ dis2 (RTOS dis1 2 2))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang2 (+ angant1 (- ang1 PI)))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang3 (ANGTOS ang2 1 4))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ pto (STRCAT "@" dis2 "<" ang3))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(COMMAND "line" "" pto "")
(SETQ control nil)
)
)
(COMMAND "line" "" ini "")
(SETVAR "blipmode" 1) (SETVAR "cmdecho" 1) (PRIN1)
)
Saludos
jademar- Mensajes : 24
Fecha de inscripción : 03/04/2016
Re: como dibujar lotes con datos de una imagen
- Código:
;dibujar polilinea
;; mk_lwp by Alan J Thompson ;
;; Argument: pl, a point list ;
;; Returns: Object and creates LWPOLYLINE at elevation 0. ;
;; ;
(defun mk_lwp (pl)
(vlax-ename->vla-object
(entmakex
(append
(list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length pl))
; '(70 . 0);abierta
'(70 . 1);cerrada
)
(mapcar '(lambda (p) (cons 10 (trans (list (car p) (cadr p)) 1 0))) pl)
)
)
)
)
;calcula poligonal
;por robierzo
;se considera origen de la poligonal el punto de X=0 e Y=0
;se considera el ángulo del primer punto como el ángulo de salida.
(defun c:dp()
;lista con nº punto, distancia y ángulo interior en radianes
(setq lista_datos '((1 181.91 0.00)(2 230.26 1.484572214)(3 79.44 3.002165087)(4 147.86 2.811589677)(5 278.74 0.759848482)(6 159.8 2.998650188)))
(setq lista_puntos (list '(0.0 0.0)))
(setq origen '(0.0 0.0))
(setq angulo_ant (last (car lista_datos)))
(foreach elem lista_datos
(setq radianes (caddr elem))
(setq angulo (+ angulo_ant (- (* 2 pi) radianes)))
(setq punto_n (polar origen angulo (cadr elem)))
(setq lista_puntos (cons punto_n lista_puntos))
(setq origen punto_n)
(setq angulo_ant (+ angulo pi))
(if (>= angulo_ant (* 2 pi)) (setq angulo_ant (- angulo_ant (* 2 pi))))
)
(setq lista_puntos (reverse lista_puntos))
(mk_lwp lista_puntos)
(princ)
)
Re: como dibujar lotes con datos de una imagen
Gracias a todo por sus aportes . Voy a tratar de implementarlos a mis trabajos.
Re: como dibujar lotes con datos de una imagen
Que tal Amigos del Foro me sumo modificando el lisp para grados sexagesimal colocando grados minutos y segundos pero se produce un error al colocar grados negativos si alguien
puede corregir el error, agradecido. Gracias
puede corregir el error, agradecido. Gracias
- Código:
(DEFUN c:poo (/ control dis1 dis2 angant1 angant2 ang1 ang2 ang3 pto)
(GRAPHSCR)
(SETVAR "blipmode" 0) (SETVAR "cmdecho" 0)
(SETQ ini (GETPOINT "Indique punto de inicio del Poligono: ")) (TERPRI)
(SETQ dis (GETREAL "Distancia: "))
;(SETQ rum (GETANGLE "Angulo Sexagecimal: "))
(SETVAR "OSMODE" 0)
(command "'ORTO""DES")
(setvar "cmdecho" 0)
(command "-UNIDADES""2""4""2""5""0""s")
(setq g (getreal"\GRADOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(setq m(getreal"\MINUTOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(setq s (getreal"\SEGUNDOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(SETVAR "OSMODE" 0)
(setvar "cmdecho" 1)
(setq m-g (/ m 60))
(setq s-m-g (/ (/ s 60) 60))
(setq a (+ g m-g s-m-g))
(SETQ rum (* PI (/ a 180.0)));de Angulo Sexagesimal a Radianes
(SETQ dist (RTOS dis 2 2))
(SETQ rumb (ANGTOS rum 1 4))
(SETQ pto (STRCAT "@" dist "<" rumb))
(COMMAND "_line" ini pto "")
(SETQ control T)
(WHILE control
(SETQ angant1 (GETVAR "lastangle"))
(SETQ dis1 (GETREAL "Distancia: "))
;(SETQ ang1 (GETANGLE "Angulo interno: "))
(setq g1 (getreal"\GRADOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(setq m1 (getreal"\MINUTOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(setq s1 (getreal"\SEGUNDOS Sentido Horario(+);Antihorario(-):"))
(terpri)
(SETVAR "OSMODE" 0)
(setvar "cmdecho" 1)
(setq m-g1 (/ m1 60))
(setq s-m-g1 (/ (/ s 60) 60))
(setq a1 (+ g1 m-g1 s-m-g1))
(SETQ ang1 (* PI (/ a1 180.0)));de Angulo Sexagesimal a Radianes
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ dis2 (RTOS dis1 2 2))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang2 (+ angant1 (- ang1 PI)))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang3 (ANGTOS ang2 1 4))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ pto (STRCAT "@" dis2 "<" ang3))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(COMMAND "_line" "" pto "")
(SETQ control nil)
)
)
(COMMAND "_line" "" ini "")
(SETVAR "blipmode" 1) (SETVAR "cmdecho" 1) (PRIN1)
)
(prompt "\n*** nuevo comando poo definido ***")
(prin1)
Luis Alberto Benitez- Mensajes : 107
Fecha de inscripción : 29/03/2016
Re: como dibujar lotes con datos de una imagen
Solucionado de la siguiente manera:
- Código:
(DEFUN c:poo (/ control dis1 dis2 angant1 angant2 ang1 ang2 ang3 pto)
(GRAPHSCR)
(SETVAR "blipmode" 0) (SETVAR "cmdecho" 1)
;Controla si AutoCAD muestra solicitudes y entradas
;de datos durante la función command de AutoLISP:
;0 Desactiva la visualización,1 Activa la visualización
(SETQ ini (GETPOINT "Indique punto de inicio del Polígono: ")) (TERPRI)
(SETQ dis (GETREAL "Distancia: "))
(SETVAR "OSMODE" 0)
(command "'ORTO""DES")
(setvar "cmdecho" 0)
(command "-UNIDADES""2""6""2""5""0""N")-;S es en sentido Horario, N es en sentido Antihorario
(setq n (getreal"\Sentido Horario(+1),Antihorario(-1):"))
(setq g (getreal"\GRADOS:"))
(terpri)
(setq m (getreal"\MINUTOS:"))
(terpri)
(setq s (getreal"\SEGUNDOS:"))
(terpri)
(SETVAR "OSMODE" 0)
(setvar "cmdecho" 1)
(setq m-g (/ m 60))
(setq s-m-g (/ (/ s 60) 60))
(setq a (+ g m-g s-m-g))
(SETQ rum (* n (* PI (/ a 180.0))));de Angulo Sexagesimal a Radianes
(SETQ dist (RTOS dis 2 2))
(SETQ rumb (ANGTOS rum 1 6))
(SETQ pto (STRCAT "@" dist "<" rumb))
(COMMAND "_line" ini pto "")
(SETQ control T)
(WHILE control
(SETQ angant1 (GETVAR "lastangle"))
(SETQ dis1 (GETREAL "Distancia: "))
(setq n1 (getreal"\Sentido Horario(+1),Antihorario(-1):"))
(setq g1 (getreal"\GRADOS:"))
(terpri)
(terpri)
(setq m1 (getreal"\MINUTOS:"))
(terpri)
(setq s1 (getreal"\SEGUNDOS:"))
(terpri)
(SETVAR "OSMODE" 0)
(setvar "cmdecho" 1)
(setq m-g1 (/ m1 60))
(setq s-m-g1 (/ (/ s 60) 60))
(setq a1 (+ g1 m-g1 s-m-g1))
(SETQ ang1 (* n1 (* PI (/ a1 180.0))));de Angulo Sexagesimal a Radianes
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ dis2 (RTOS dis1 2 2))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang2 (+ angant1 (- ang1 PI)))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ ang3 (ANGTOS ang2 1 6))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(SETQ pto (STRCAT "@" dis2 "<" ang3))
)
(IF (AND (/= dis1 nil) (/= ang1 nil))
(COMMAND "_line" "" pto "")
(SETQ control nil)
)
)
(COMMAND "_line" "" ini "")
(SETVAR "blipmode" 1) (SETVAR "cmdecho" 1) (PRIN1)
)
(prompt "\n*** nuevo comando poo definido ***")
(prin1)
Luis Alberto Benitez- Mensajes : 107
Fecha de inscripción : 29/03/2016
Re: como dibujar lotes con datos de una imagen
Si lo que tienes es la tabla de datos en excel, con esta rutina se dibuja el polígono que describen esas distancias y esos ángulos:
Pero si está en excel, más fácil es calcular las coordenadas de los vértices e importarlos a autocad.
Si quieres, te envío el fichero.
Saludos,
- Código:
(defun c:plan()
(setq distances (list 181.91 230.26 79.44 147.86 278.74 159.8) angles (list 0 1.4846 3.0022 2.8116 0.7598 2.9987))
(setq angles2 angles distances2 distances)
(setq bear (list 0) angles2 (cdr angles2) distances2 (cdr distances2) points (list (list 0 0)))
(setq points (cons (polar (car points) (car bear) (car distances)) points))
(command "_line" (car points) (cadr points) "")
(Repeat (- (length distances) 2)
(progn
(setq bear (cons (+ pi (- (car bear) (car angles2))) bear))
(setq points (cons (polar (car points) (car bear) (car distances2)) points))
(command "_line" (cadr points) (car points) "")
(setq angles2 (cdr angles2))
(setq distances2 (cdr distances2))
)
)
(command "_line" (car points) (list 0 0) "")
)
Pero si está en excel, más fácil es calcular las coordenadas de los vértices e importarlos a autocad.
Si quieres, te envío el fichero.
Saludos,
jamescalabut- Mensajes : 7
Fecha de inscripción : 27/07/2018
Re: como dibujar lotes con datos de una imagen
Hola , jamescalabut , anda perfecto . Muchas Gracias
Con gusto recibiré el xls que mencionas .
mi correo devitg@gmail.com
Con gusto recibiré el xls que mencionas .
mi correo devitg@gmail.com
Re: como dibujar lotes con datos de una imagen
Hola Devitg,
Me alegro que te haya funcionado.
Ya te he enviado el xls.
Saludos,
Me alegro que te haya funcionado.
Ya te he enviado el xls.
Saludos,
jamescalabut- Mensajes : 7
Fecha de inscripción : 27/07/2018

» Dibujar polilinea 3d en 3dfaces
» Perpendiculares a un eje
» Aplicacion DTarear actualizada
» Imagen a DCL...
» Dibujar líneas separación logarítmica
» Perpendiculares a un eje
» Aplicacion DTarear actualizada
» Imagen a DCL...
» Dibujar líneas separación logarítmica
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|