Dibujar en Autocad desde Visual basic
Hola, necesito crear dibujos en Autocad pero desde Visual basic, como puedo mandar la orden ya sean coordenadas o lineas al autocad de tal forma que ya este dibujado en el Autocad
hola!!, nunca he programado algo asi pero se que puedes introducir elementos de autocad (com el escritorio ese negro donde se dibuja, las herramientas de dibujo etc...) en un formulario de visual... solo tienes que tener el autocad instalado y buscar los componentes ... investiga a ver k encuentras ^_^
Espero haberte ayudado... 1 saludo!!
Espero haberte ayudado... 1 saludo!!
Aqui va el ejemplo de dibujar una linea desde el punto 0,0,0 al punto 500,500,0.
Option explicit
Dim AcadDoc as Object
Dim AcadDocEM as Object
Dim ObjLinea as Object
Dim Pt1 (1 to 3) as double
Dim Pt2 (1 to 3) as double
Private Sub Dibujar_Click()
Set AcadDoc=GetObject(,"Autocad.Application").ActiveDocument
Set AcadDocEM=AcadDoc.ModelSpace
Pt1(1)=0 : Pt1(2)=0 : Pt1(3)=0
Pt2(1)=500 : Pt2(2)=500 : Pt2(3)=0
Set ObjLinea=AcadDocEM.addLine(Pt1,pt2)
End Sub
Pruebalo que seguro que funciona.
Ahora va la pregunta: ¿Porque quieres dibujar objetos desde VBA pudiendolos hacer desde Lisp?
Si te das cuenta hemos tenido que escribir una cantidad considerable de codigo para dibujar una simple linea. Imaginate para hacer una matriz o un bloque.
Lo mejor es que desde VBA llames a un procedimiento escrito en Lisp.
Esto en VBA:
Private Sub Dibujar_Click()
ThisDrawind.SendCommand ("milinea ")
Me.Hide
End Sub
Y esto en Lisp:
(defun c:milinea()
(vl-cmdf "_line" "0,0,0" "500,500,0" "")
)
Option explicit
Dim AcadDoc as Object
Dim AcadDocEM as Object
Dim ObjLinea as Object
Dim Pt1 (1 to 3) as double
Dim Pt2 (1 to 3) as double
Private Sub Dibujar_Click()
Set AcadDoc=GetObject(,"Autocad.Application").ActiveDocument
Set AcadDocEM=AcadDoc.ModelSpace
Pt1(1)=0 : Pt1(2)=0 : Pt1(3)=0
Pt2(1)=500 : Pt2(2)=500 : Pt2(3)=0
Set ObjLinea=AcadDocEM.addLine(Pt1,pt2)
End Sub
Pruebalo que seguro que funciona.
Ahora va la pregunta: ¿Porque quieres dibujar objetos desde VBA pudiendolos hacer desde Lisp?
Si te das cuenta hemos tenido que escribir una cantidad considerable de codigo para dibujar una simple linea. Imaginate para hacer una matriz o un bloque.
Lo mejor es que desde VBA llames a un procedimiento escrito en Lisp.
Esto en VBA:
Private Sub Dibujar_Click()
ThisDrawind.SendCommand ("milinea ")
Me.Hide
End Sub
Y esto en Lisp:
(defun c:milinea()
(vl-cmdf "_line" "0,0,0" "500,500,0" "")
)
Buenas noches, disculpen que escriba en un hilo tan viejo, no se si sera que tengo que crear una nueva pregunta, lo que pasa es que el codigo que colocaron me funciona pero para una linea, yo tengo un datagrid en visual studio 2012 con 3 columnas x - y - z donde cada una tienes sus coordenadas que son muchas, mi pregunta, es como puedo recorrer el datagrid y sacar todas las coordenadas y que me las dibuje en autocad, para no tener que hacer una por una, muchas gracias
