Bloque Numerado

Ver el tema anterior Ver el tema siguiente Ir abajo

Bloque Numerado

Mensaje por Zicaryd el Mar Sep 12, 2017 4:26 pm

Que tal amigos, empezando en este grupo y pidiendo la colaboración de los capos en el Tema.

Necesito insertar un Bloque Perpendicular al punto medio de una linea, Linea que seleccione se inserte el bloque y un numero correlativo para llevar un registro.

Envio bloque con atributo y modelo terminado.

Espero me puedan brindar este apoyo solicitado, o por lo menos por donde empezar.

Gracias

https://drive.google.com/file/d/0B131sP2Zq1-QSUJ5V0tCZUhJU3M/view?usp=sharing

Zicaryd

Mensajes : 8
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Bloque Numerado

Mensaje por nolo el Miér Sep 13, 2017 1:13 am

Veo que los bloques van siempre en el centro de una línea pero no tengo muy claro es como conoces a ojo donde empiezan y acaban las líneas.
En fin, espero que por lo menos esto te sirva de orientación

Código:
(defun c:pta ( / l lp pm ang num num$)
(setq num 0)
(while (setq l (ssget "_+.:S:E" '((0 . "LINE"))  ))
 (setq num (1+ num)
 l (ssname l 0)
 lp (vl-remove-if-not '(lambda(a)(member (car a) '(10 11))) (entget l) )
 lp (mapcar 'cdr lp)
 pm (mapcar '/ (mapcar '+ (car lp)(cadr lp)) '( 2 2))
 ang (angle (car lp)(last lp))
 )
 (setq num$ (if (< num 10)(strcat "0" (itoa num)) (itoa num)) )
 (if (< ang (* 1.5 pi))(setq ang (+ ang  pi)))
 (ENTMAKE (list
 '(0 . "INSERT")'(66 . 1)'(2 . "palito")
 (cons 10 pm) (cons 50 ang)
 ))
 (ENTMAKE  (list '(0 . "ATTRIB")'(62 . 0)
 (cons 40 1)
 (cons 1 num$)
 (cons 50 ang)
 (cons 2  "N°")
 (cons 7 "1000-Alcant")
 '(70 . 0)'(72 . 1)'(73 . 0)'(74 . 1)
 '(10 0 0 0)
 (cons 11 (polar pm (+ ang (/ pi 2)) 1))
 ))
 (ENTMAKEX '((0 . "SEQEND")) )
)
(print (strcat (itoa num) " numerados"))
(princ)
)

Un saludo

PD. Creo recodar que la web se comía los apostrofes, si te falla recuerda que los pares punteados dentro de una secuencia de list tipo (1 . x), van precedidos del apostrofe (coma superior) '(1 . x)

nolo

Mensajes : 123
Fecha de inscripción : 17/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Bloque Numerado

Mensaje por Zicaryd el Miér Sep 13, 2017 3:15 am

Gracias nolo por tu ayuda, si ha funcionado, te podría pedir algo adicional, crees que lo puedas modificar para que me indique con que numero quiero empezar cuando inserte el bloque.

Igual de antemano muchas gracias.

Zicaryd

Mensajes : 8
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Bloque Numerado

Mensaje por nolo el Miér Sep 13, 2017 2:58 pm

Puedes sencillamente cambiar
Código:
(setq num 0)
por
Código:
(setq num0 (getint "número para empezar : ")
 num (setq num0(1- num0))
)
o utilizar este código que es un poco mas elegante
Código:
(defun c:pta2 ( / l lp pm ang num num$ num0)
(setq num0 (getint "número para empezar : ")
 num (setq num0(1- num0))
)
(while (progn
 (princ"\nSeleccione una línea : ")
 (setq l (ssget "_+.:S:E" '((0 . "LINE"))  )))
 (setq num (1+ num)
 l (ssname l 0)
 lp (vl-remove-if-not '(lambda(a)(member (car a) '(10 11))) (entget l) )
 lp (mapcar 'cdr lp)
 pm (mapcar '/ (mapcar '+ (car lp)(cadr lp)) '( 2 2))
 ang (angle (car lp)(last lp))
 )
 (setq num$ (if (< num 10)(strcat "0" (itoa num))(itoa num)) )
 (if (< ang (* 1.5 pi))(setq ang (+ ang  pi)))
 (ENTMAKE (list
 '(0 . "INSERT")'(66 . 1)'(2 . "palito")
 (cons 10 pm) (cons 50 ang)
 ))
 (ENTMAKE  (list '(0 . "ATTRIB")'(62 . 0)
 (cons 40 1)
 (cons 1 num$)
 (cons 50 ang)
 (cons 2  "N°")
 (cons 7 "1000-Alcant")
 '(70 . 0)'(72 . 1)'(73 . 0)'(74 . 1)
 '(10 0 0 0)
 (cons 11 (polar pm (+ ang (/ pi 2)) 1))
 ))
 (ENTMAKEX '((0 . "SEQEND")) )
)
(princ"\nNo ha seleccionado una línea ..")
(princ (strcat "\n" (itoa (- num num0)) " numeraciones"))
(princ)
)

No obstante, si no se ha comido los apostrofes la web es que lo que lo que se comía era la barra de dividir invertida, así que si ves en un princ "n debe ser "barra_invertidan para que salte de línea al escribir.

Un saludo

nolo

Mensajes : 123
Fecha de inscripción : 17/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Bloque Numerado

Mensaje por Zicaryd el Miér Sep 13, 2017 3:29 pm

Amigo nolo muchas gracias, por tu apoyo y aporte...
Funciona a la perfeccion.
slds.

Zicaryd

Mensajes : 8
Fecha de inscripción : 23/10/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Bloque Numerado

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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