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

Tabla de coordenadas de puntos

5 participantes

Ir abajo

Tabla de coordenadas de puntos Empty Tabla de coordenadas de puntos

Mensaje por Dominguez Mar Mar 29, 2016 8:48 pm

Bueno como inicio de una duradera y gran aventura, voy a colaborar con una rutina que quiza a alguno le resulte valida para sus tareas cotidianas.
Crea una tabla de Autocad con las coordenadas X Y de los puntos indicados por el usuario, quizas ya exista alguna parecida pero esta actualiza las coordenadas si movemos los puntos de su sitio inicial.
Un saludo para todos y feliz travesia por este gran desierto.
Version Mejorada
Código:
; Crea una tabla con las coordenadas XY de los puntos indicados.
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun inicio ()
  (setq cont 3) ; 1ª fila para insertar datos
  (setq row 3) ; número filas, incluso titulo y encabezados
  (setq col 3) ; número columnas
  (if (not *altxt*)
    (setq *altxt* (getreal "\nAltura textos: "))
    (setq *altxt* *altxt*)
  )
  (setq p 1) ; valor si para seguir insertando puntos
  (setq sn 0) ; valor control altura texo
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
;; Crea estilo de tabla estandar
(defun crea_tbl ()
  (setq acmcol (vla-getinterfaceobject
                 (vlax-get-acad-object)
                 (strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2))
               )
  )
  (setq *adoc* (vla-get-activedocument (vlax-get-acad-object)))
  (if (not (tblobjname "STYLE" "TABLA"))
    (entmake (list '(0 . "STYLE") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbTextStyleTableRecord")
                   '(2 . "TABLA") '(70 . 0) '(40 . 0.0) '(41 . 0.0) '(50 . 0.0) '(71 . 0) '(3 . "ARIAL") '(4 . "")
                  )
    )
  )
  (setq tblstl (vla-item (vla-get-dictionaries *adoc*) "acad_tablestyle"))
  (setq tbl (vla-addobject tblstl "cuadro" "AcDbTableStyle"))
  (vla-settextstyle tbl acheaderrow "tabla")
  (vla-settextstyle tbl actitlerow "tabla")
  (vla-settextstyle tbl acdatarow "tabla")
  (vla-settextheight tbl actitlerow (* *altxt* 1.5)) ;altura texto titulo
  (vla-settextheight tbl acheaderrow *altxt*) ;altura texto cabecera
  (vla-settextheight tbl acdatarow *altxt*) ;altura texto celdas
  (vla-setalignment tbl actitlerow acmiddleleft)
  (vla-setalignment tbl acheaderrow acmiddleleft)
  (vla-setalignment tbl acdatarow acmiddleleft)
  (vla-put-vertcellmargin tbl (* *altxt* 0.5)) ; margen vertical
  (vla-put-horzcellmargin tbl (* *altxt* 0.5)) ; margen horizontal
  (setvar 'ctablestyle "cuadro")
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
 ; formatear la tabla
(defun formato_tbl ()
  (setq pt (vlax-3d-point (getpoint "\nPunto de inserción de tabla: ")))
  (setq tbl (vla-addtable (vla-get-modelspace *adoc*) pt row col *altxt* *altxt*))
  (vla-put-stylename tbl "cuadro")
  (vla-settextheight tbl actitlerow (* *altxt* 1.5)) ;altura texto titulo
  (vla-settextheight tbl acheaderrow *altxt*) ;altura texto cabecera
  (vla-settextheight tbl acdatarow *altxt*) ;altura texto celdas
  (vla-setcolumnwidth tbl 0 (* *altxt* 5)) ;anchura 1ª columna
  (vla-setcolumnwidth tbl 1 (* *altxt* 11)) ;anchura 2ª columna
  (vla-setcolumnwidth tbl 2 (* *altxt* 11)) ;anchura 3ª columna
  (vla-settext tbl 1 0 "Punto") ;CABECERA 1
  (vla-settext tbl 1 1 "Coordenada X") ;CABECERA 2
  (vla-settext tbl 1 2 "Coordenada Y") ;CABECERA 3
  ;; cambiamos colores de textos
  (vla-put-colorindex acmcol 2) ; amarillo
  (vla-setcellcontentcolor tbl 0 0 acmcol) ; titulo amarillo
  (vla-put-colorindex acmcol 3) ; verde
  (vla-setcellcontentcolor tbl 1 0 acmcol) ; cabecera punto amarillo
  (vla-put-colorindex acmcol 1) ; rojo
  (vla-setcellcontentcolor tbl 1 1 acmcol) ; cabecera coordenadaX rojo
  (vla-put-colorindex acmcol 4) ; ciano
  (vla-setcellcontentcolor tbl 1 2 acmcol) ; cabecera coordenadaY ciano
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun puntos ()
  (if (= sn 0)
    (progn (setq pto 1)
           (if (not *numero*)
             (setq *numero* (getint "\nNúmero punto inicio: "))
             (progn (setq num (getint (strcat "\nNúmero punto inicio: <" (itoa *numero*) ">")))
                    (if (/= num nil)
                      (setq *numero* num)
                    )
             )
           )
    )
  )
  (setq pto (getpoint (strcat "\nIndicar Punto: <" (itoa *numero*) ">")))
  (if (= pto nil)
    (setq p nil)
  )
  (setq numero$ (strcat "P" (itoa *numero*)))
  (if (/= pto nil)
    (progn (vl-cmdf "_insert" "PUNTO_TBL" pto *altxt* *altxt* 0 numero$)
           (setq blk (vlax-ename->vla-object (entlast)))
           (setq x (strcat "%<\\AcObjProp Object(%<\\_ObjId "
                           (itoa (vla-get-objectid blk))
                           ">%).InsertionPoint \\f "%lu2%pt1%pr3">%"
                   )
           )
           (setq y (strcat "%<\\AcObjProp Object(%<\\_ObjId "
                           (itoa (vla-get-objectid blk))
                           ">%).InsertionPoint \\f "%lu2%pt2%pr3">%"
                   )
           )
           (setq *numero* (1+ *numero*))
           (if (= sn 0)
             (setq 1ºpunto numero$)
           )
           (setq sn 1)
    )
  )
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun inserta_datos ()
  (if (= p 1)
    (progn (vla-insertrows ; insertamos filas
             tbl
             cont
             *altxt* ;altura fila insertada
             1 ;cantidad de filas
           )
           (setq row (1+ row)) ; incrementamos el numero de filas
           (vla-settext tbl (1- cont) 0 numero$) ; nombre del punto
           (vla-settext tbl (1- cont) 1 x) ; coordenada X
           (vla-settext tbl (1- cont) 2 y) ; coordenada Y
           ;; cambiamos colores de textos
           (vla-put-colorindex acmcol 3) ; verde
           (vla-setcellcontentcolor tbl (1- cont) 0 acmcol) ; titulo verde
           (vla-put-colorindex acmcol 1) ; rojo
           (vla-setcellcontentcolor tbl (1- cont) 1 acmcol)
           (vla-put-colorindex acmcol 4) ; ciano
           (vla-setcellcontentcolor tbl (1- cont) 2 acmcol)
           (setq cont (1+ cont))
    )
  )
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun bloque_punto ()
  (if (not (tblobjname "LAYER" "TBL_PTOS"))
    (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord")
                   '(2 . "TBL_PTOS") '(70 . 0) '(62 . 8) '(6 . "CONTINUOUS")
                  )
    )
  )
  (setvar 'clayer "TBL_PTOS")
  (if (not (tblobjname "BLOCK" "PUNTO_TBL"))
    (foreach h (list (list '(0 . "BLOCK") '(100 . "AcDbEntity") '(67 . 0) '(8 . "TBL_PTOS")
                           '(100 . "AcDbBlockBegin") '(1 . "PUNTO_TBL") '(2 . "PUNTO_TBL") '(70 . 2)
                           '(10 0.0 0.0 0.0)
                          )
                     (list '(0 . "LINE") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "TBL_PTOS")
                           '(100 . "AcDbLine") '(10 -0.5 0.0 0.0) '(11 0.5 0.0 0.0) '(210 0.0 0.0 1.0)
                          )
                     (list '(0 . "LINE") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "TBL_PTOS")
                           '(100 . "AcDbLine") '(10 0.0 0.5 0.0) '(11 0.0 -0.5 0.0) '(210 0.0 0.0 1.0)
                          )
                     (list '(0 . "ATTDEF") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "TBL_PTOS")
                           '(100 . "AcDbText") '(10 -1.47619 1.5 0.0) '(40 . 1.0) '(1 . "") '(50 . 0.0) '(41 . 1.0)
                           '(51 . 0.0) '(7 . "TABLA") '(71 . 0) '(72 . 1) '(11 9.18455e-017 1.5 0.0)
                           '(210 0.0 0.0 1.0) '(100 . "AcDbAttributeDefinition") '(3 . "PUNTO") '(2 . "PUNTO")
                           '(70 . 0) '(72 . 1) '(73 . 0) '(74 . 0) '(280 . 0)
                          )
                     (list '(0 . "ENDBLK"))
               )
      (entmake h)
    )
  )
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
(defun c:tabla_puntos (/ lay acmcol cont row col p sn tblstl blk tbl pt *adoc* pto num numero$ x y 1ºpunto)
  (setvar 'cmdecho 0)
  (vl-load-com)
  (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
  (setq lay (getvar 'clayer))
  (inicio)
  (crea_tbl)
  (bloque_punto)
  (formato_tbl)
  (while p (puntos) (inserta_datos))
  (vla-settext tbl 0 0 (strcat "TABLA PUNTOS " 1ºpunto "-P" (itoa (1- (atoi (substr numero$ 2))))))
  (vla-deleterows tbl (1- cont) 1) ; elimina la ultima fila vacia
  (setvar 'clayer lay)
  (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
  (prin1)
)
;;;ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo


Última edición por Dominguez el Jue Mar 31, 2016 8:23 pm, editado 2 veces
Dominguez
Dominguez

Mensajes : 151
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por robierzo Mar Mar 29, 2016 10:49 pm

Muy buena Domínguez. Sobre todo para aprender muchas cosas.!!!!
Aunque yo aún utilizo esta que va genial, excepto por el tema de actualizar las coordenadas en la tabla cuando se mueve un punto.

Tabla de coordenadas de puntos V7bmhe

Ya llovió desde que hicieras la primera versión, pero sigue estando en plena vigencia.
robierzo
robierzo

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

http://www.selmotopografia.es

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por Dominguez Mar Mar 29, 2016 11:58 pm

robierzo escribió:Muy buena Domínguez. Sobre todo para aprender muchas cosas.!!!!
Aunque yo aún utilizo esta que va genial, excepto por el tema de actualizar las coordenadas en la tabla cuando se mueve un punto.

Tabla de coordenadas de puntos V7bmhe

Ya llovió desde que hicieras la primera versión, pero sigue estando en plena vigencia.
Cuanto me gusta que a la gente le sirvan mis rutinas
Un saludo
Dominguez
Dominguez

Mensajes : 151
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por saulo2016 Miér Mar 30, 2016 2:54 am

A mi ademas del cuadro de coordenadas del maestro Dominguez utilizo bastante el DTCODOS....esa rutina a como me ha servido para hacer los codos mitrados en 3D.....Maestro Dominguez le debo muchisimo!!!!

Gracias


Saludos
saulo2016
saulo2016

Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por saulo2016 Miér Mar 30, 2016 3:05 am

Pregunta:

Como le hago para pegar IMAGENES como ustedes lo hacen ???


saludos
saulo2016
saulo2016

Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por robierzo Miér Mar 30, 2016 11:07 am

saulo, cuando escribes un mensaje hay un icono que sirve para alojar una imagen. Es el que está en la posición nº 13, el primero del 4º bloque de iconos.
robierzo
robierzo

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

http://www.selmotopografia.es

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por devitg Sáb Abr 02, 2016 12:33 am


Y luego trabajas en este cuadro

Tabla de coordenadas de puntos Como_p10

devitg
Admin

Mensajes : 257
Fecha de inscripción : 16/03/2016
Edad : 75
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por SushyM Miér Oct 18, 2017 9:18 am

Que tal, he estado tratando de usar esta rutina pero me genera un error.

Command: *Cancel*

Command:
TABLA_PUNTOS

Punto de inserción de tabla:
Número punto inicio: <1>

Indicar Punto: <1>Unknown command "P1". Press F1 for help.
; error: bad argument type: stringp nil

Command:
TABLA_PUNTOS

Punto de inserción de tabla:
Número punto inicio: <1>

Indicar Punto: <1>Unknown command "P1". Press F1 for help.
; error: bad argument type: stringp nil

Command:

Despues de indicarle el punto de inicio, y darle una ubicacion del primer punto me sale el cuadro de atributos le pongo aceptar y se cancela. No se si esta rutina corra en autocad 2018.

Saludos.

SushyM

Mensajes : 38
Fecha de inscripción : 13/09/2017

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por Dominguez Miér Oct 18, 2017 7:10 pm

SushyM escribió:
Command:
TABLA_PUNTOS

Punto de inserción de tabla:
Número punto inicio: <1>

Indicar Punto: <1>Unknown command "P1".  Press F1 for help.
; error: bad argument type: stringp nil

Command:

Despues de indicarle el punto de inicio, y darle una ubicacion del primer punto me sale el cuadro de atributos le pongo aceptar y se cancela. No se si esta rutina corra en autocad 2018.

Saludos.
Bueno esa rutina Tabla_Puntos esta superdesfasada, la anule por esta otra que nos enseña el compañero Robierzo , que se llama DTcuadro_coor , pues es mucho mas completa y ademas hace muchas mas cosas que señalar puntos,
Buscala DTcuadro_Coor.VLX


Última edición por Dominguez el Jue Oct 19, 2017 7:42 pm, editado 1 vez
Dominguez
Dominguez

Mensajes : 151
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por SushyM Jue Oct 19, 2017 12:35 pm


SushyM

Mensajes : 38
Fecha de inscripción : 13/09/2017

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por Dominguez Jue Oct 19, 2017 7:44 pm

Bueno creo que en esa direccion no esta ya, aqui dejo la direccion buena
https://www.dropbox.com/s/kl4wu73t0bwp3sy/DTcuadro_Coor.VLX?dl=0&m=


Última edición por Dominguez el Dom Oct 22, 2017 8:45 pm, editado 1 vez
Dominguez
Dominguez

Mensajes : 151
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por SushyM Sáb Oct 21, 2017 5:45 am

Gracias por colgarlo, estimado Maestro Dominguez.

Consulta, no se si es por la version u algo que este omitiendo pero al correr la rutina me sale esto y se cancela


Command: CCC
; error: LOAD failed: "marca_ldg"

Command: *Cancel*

Command: CCC
; error: LOAD failed: "marca_ldg"

Gracias por la atencion. Saludos.

SushyM

Mensajes : 38
Fecha de inscripción : 13/09/2017

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por devitg Sáb Oct 21, 2017 11:04 am

falta el cuadro de diálogo .

devitg
Admin

Mensajes : 257
Fecha de inscripción : 16/03/2016
Edad : 75
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por Dominguez Dom Oct 22, 2017 8:32 pm

Perdonad, pero es culpa mia que no funcionara DTcuadro_Coor.VLX
Le faltaba algun detalle.
Podeis bajarlo de aqui.
https://www.dropbox.com/s/kl4wu73t0bwp3sy/DTcuadro_Coor.VLX?dl=0&m=
Saludos
Dominguez
Dominguez

Mensajes : 151
Fecha de inscripción : 20/03/2016
Edad : 74
Localización : Zaragoza (España)

Volver arriba Ir abajo

Tabla de coordenadas de puntos Empty Re: Tabla de coordenadas de puntos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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