Hacer un objeto programado.

Soy aficionado de autolisp, he creado algunas rutinas. Una de ellas crea una puerta con ancho y largo de vano seleccionados desde la pantalla, pero están basadas en lineas y polilíneas. Bueno mi pregunta es: Como hago para que con el comando "LIST" de autocad me diga que es una "PUERTA" y que el ancho del vano es POR, el largo del vano es POR, y esta en el layer X.
¿Se puede hacer eso desde autolisp? O necesitaría otro programa como visual basic o C+.
Atentamente: Luis

1 Respuesta

Respuesta
1
Te doy una idea, la idea es crear un bloque con atributos pero invisibles.
Lo que debes hacer es lo siguiente:
Se supone que el programa que haces te pregunta datos como, ancho del vano, largo del vano y lo pones en cierta capa. Bueno ahora tienes que crear el bloque de todos los elementos al momento de dibujar la puerta, el nombre del bloque sera Puerta-1 (por ejemplo), si es que pones más puertas sera Puerta-2, etc., los atributos seras el ancho del vano, el largo del vano y la capa se extrae directamente de la base de datos del bloque. Se supone que el bloque con los atributos lo debes crear directamente desde AutoLISP.
Luego si quieres crear el programa para que te liste los bloques, puedes ocupar directamente el comando LIST. Por ejemplo:
BLOCK REFERENCE Layer: "0"
Space: Model space
Handle = 40
"Puerta-1"
at point, X= 156.9396 Y= 70.4597 Z= 0.0000
X scale factor 1.0000
Y scale factor 1.0000
rotation angle 0
Z scale factor 1.0000
ATTRIBUTE Layer: "0"
Space: Model space
Handle = 42
Style = "Standard"
Font file = txt
start point, X= 170.4601 Y= 136.2930 Z= 0.0000
height 2.5000
value 70
Tag L-VANO
Rotation angle 0
Width scale factor 1.0000
obliquing angle 0
Flags invisible
Generation normal
ATTRIBUTE Layer: "0"
Space: Model space
Handle = 43
Style = "Standard"
Font file = txt
start point, X= 170.4601 Y= 140.4597 Z= 0.0000
height 2.5000
value 5
Tag W-VANO
Rotation angle 0
Width scale factor 1.0000
obliquing angle 0
Press ENTER to continue:
Flags invisible
Generation normal
END SEQUENCE Layer: "0"
Space: Model space
PlotStyleName: ByLayer
Handle = 41
En todo caso es mucho mejor que crees un programita aparte en el cual te liste el bloque que selecciones de la pueta y solo te muestre los datos del nombre del bloque (Puerta-1), al ancho del vano (5) y el largo del vano (70), esto lo puedes manejar desde la base de datos del objeto bloque.
Si quieres un ejemplo me avisas y con gusto te ayudo...
Espero que me hayas entendido. No te doy detalles de como hacerlo desde AutoLISP porque veo que ya sabes programar.
Esta muy buena tu idea pero cuando me compre el libro de programación en autocad y empecé a hacer rutinas mi idea principal era llegar a hacer un objeto, de hecho quería hacer un programa como "leader" que a simple vista se ve sencillo una polilínea con un bloque que pudiera ser flecha y también puedes insertarle texto, y puedes moverla y editarla como quieras.
Tengo que editar muchas puertas ventanas y otro tipo de cosas y quiero empezar con hacer un programa de puerta pero no se como hacer.
Mi rutina de puertas quedo muy bien pero es solo una rutina, si saber como hacerlo por favor dímelo o es que no es tan fácil.
Haber, lo que tu quieres hacer es programar un objeto en AutoCAD, así como un objeto linea que es propio de este o un leader. Creo que eso es muy difícil, y eso esta fuera de mi alcance como programador con AutoCAD. Se podría hacer con programación en *. Arx, pero esa programación es una de las más difíciles y efectivamente se hace con C++. Con VB directamente no creo.
Me imagino que tu quieres crear una puerta que la puedas manipular como un objeto linea, leader, circulo, etc., es decir, cambiarle su geometría y que automáticamente cambie lo demás de la puerta. Bueno existe una posibilidad que seria trabajar con reactores con funciones de Visual LISP, lo que también esta fuera de mi alcance ya que hace poco, para ser más exacto más o menos el 5 de enero, ha salido un libro en español llamado Programación en AutoCAD con Visual LISP y todavía no lo compro.
Yo por el momento puedo ayudarte con lo del bloque.
Dime si efectivamente es lo que te describí arriba lo que quieres hacer o es otra cosa, yo entendí de esa forma, ojala fuera otra cosa más sencilla y poder ayudarte.
También nombras "y quiero empezar con hacer un programa de puertas pero no se como hacer." explicame con más detalle que tipo de programa quieres hacer de puertas.
En resumen si lo que quieres es hacer lo que te describí con los reactores, seré sincero y por el momento no podre ayudarte. Si necesitas cualquier otra cosa, por ejemplo lo del bloque u otra cosa en AutoLISP cuanta conmigo...
Si eso es exactamente lo que quería, crear un objeto como leader, bueno segunda persona que me dice que es muy difícil. Gracias por todo y voy a buscar ese libro que dices me gustaría saber de que editorial es.
Gracias.
luis_supercad
Venezuela

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas