Bloque Numerado
2 participantes
Página 1 de 1.
Bloque Numerado
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
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 : 38
Fecha de inscripción : 23/10/2016
Re: Bloque Numerado
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
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)
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 : 182
Fecha de inscripción : 17/03/2016
Re: Bloque Numerado
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.
Igual de antemano muchas gracias.
Zicaryd- Mensajes : 38
Fecha de inscripción : 23/10/2016
Re: Bloque Numerado
Puedes sencillamente cambiar
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
- Código:
(setq num 0)
- Código:
(setq num0 (getint "número para empezar : ")
num (setq num0(1- num0))
)
- 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 : 182
Fecha de inscripción : 17/03/2016
Re: Bloque Numerado
Amigo nolo muchas gracias, por tu apoyo y aporte...
Funciona a la perfeccion.
slds.
Funciona a la perfeccion.
slds.
Zicaryd- Mensajes : 38
Fecha de inscripción : 23/10/2016
Temas similares
» Seleccion Bloques Intersectados
» incluir un bloque en un archivo VLX
» Insertar un bloque y centrarlo
» Texto a Bloque Atributo
» Saber si un objeto esta en un bloque.
» incluir un bloque en un archivo VLX
» Insertar un bloque y centrarlo
» Texto a Bloque Atributo
» Saber si un objeto esta en un bloque.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|