Newsgroup: it.comp.lang.visual-basic
Titolo: [HELP] VB 6 ---> Autocad 2002

Premetto che riesco a interfacciare Excel, ma con Autocad non riesco
proprio ...
Saresti cosi' gentile da spiegarmi come si fa ?
1 ) Mi accontenterei di aprire Autocad da VB, ma se siete disponibili
vi chiederei anche :
2 ) come faccio a disegnare una linea (x1,y1)-(x2.y2) ?
Al momento la mia unica soluzione e' di creare un file di testo con i
comandi gia' pronti ... con un copia e incolla manuale vien fuori il
dwg pronto.
3 ) per esperti : 
disegnata una superficie 3D trasformata in "regione" ottengo le
caratteristiche geometriche col comando _massprop
come faccio ad accedere a questi dati automaticamente con VB ?
GRAZIE in anticipo !
Fabrox
Fabrox

 ha scritto nel messaggio
news:3cd66c8c...@powernews.inwind.it...


 Logicamente devi inserire il riferimento alla libreria di autocad.
Se usi il 'createobject' ed il 'dim as object' il riferimento non serve.
Basta che ci sia Autocad sulla macchina target.
Ciao
Alberto

>     Set acadobj = CreateObject("AutoCADAcadApplication")
Bene ... comincia a funzionare !
Option Explicit
Private Sub UserDocument_Initialize()
Dim appAutocad As Object
Set appAutocad = CreateObject("Autocad.Application")
appAutocad.Visible = True
End Sub
Si apre una finestra di explorer che cerca invano di aprire
C:\Programmi\Microsoft Visual Studio\VB98\Autocad1.vbd
(ovvero il file di progetto che sto utilizzando)
[Come potrei fare a chiudere explorer automaticamente ?]
e poi si apre Autocad !! :-)
per default si apre "disegno1.dwg"
Se uso un foglio di visual basic EXE standard anziche' EXE di ActiveX
Autocad si apre lo stesso ma non mi esegue i comandi SendKeys...
Private Sub Form_Load()
Dim appAutocad As Object
Set appAutocad = CreateObject("Autocad.Application")
appAutocad.Visible = True
SendKeys "%FS"       'menu file ... salva 
End Sub
Ora il problema successivo e' : come inserisco i comandi dentro
Autocad ?
ps : Niente male come inizio ! Grazie ancora !!
Fabrox

 Autocad ?
Immagino ci siano delle proprietà e dei metodi della classe OleAutomation di
AutoCad.
Visto che nel progetto hai inserito i riferimenti, se (temporaneamente) usi
DIM as Acad.Application, dovresti avere anche l'Intellisense attivato.
Poi prima di compilare togli i riferimenti, commenti questo DIM e decommenti
il Dim as object e il createobject.
Ciao
Alberto

Alberto
Sei stato molto gentile !
Ho proseguito i tentativi via email al di fuori del NG e sono arrivato
alla soluzione: riporto un piccolo promemoria per eventuali
interessati futuri.
VB -->  AUTOCAD
Istruzioni per creare un nuovo dwg da vb e inviare comandi:
Private Sub Form_Load()
' Connect to the AutoCAD application
Dim appAutocad As Object
' nuova applicazione Autocad
Set appAutocad = CreateObject("Autocad.Application") 
'utilizzo la riga successiva x aprire un DWG esistente e terminare VB
'(NB : cosi' com'e' non funziona, c'e' qualcosa da correggere)
    'Set appAutocad = GetObject("C:\Documenti\prova.dwg"): Exit Sub ' 
appAutocad.Visible = True
  ' Connect to the AutoCAD drawing
Dim acadDoc As AutoCAD.AcadDocument
Set acadDoc = AutoCAD.ActiveDocument
  'Disegno qualcosa su AutoCAD
acadDoc.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "500" & vbCr
acadDoc.SendCommand "_Line" & vbCr & "2,2,0" & vbCr & "200,200,0" &
vbCr & vbCr
'SendKeys "%FS"       'menu file ... salva 
End Sub
Fabrox


Guarda, non ho tempo per guardare il tuo codice.
Posto qui sotto un vecchio progettino di prova con il quale ho imparato a
usare AutoCad da VB.
Vedi se c'è qualcosa che ti interessa.
Ciao
Alberto
Option Explicit
Private ACAD_APP As AcadApplication
Private ACAD_DWG As AcadDocument
Private Sub BTN_Mostra_Click()
ACAD_APP.Visible = True
End Sub
Private Sub BTN_Nascondi_Click()
ACAD_APP.Visible = False
End Sub
Private Sub BTN_Apri_Click()
ACAD_APP.Documents.Close
Set ACAD_DWG = ACAD_APP.Documents.Open("d:\temp\prova.dwg")
End Sub
Private Sub BTN_Salva_Click()
ACAD_DWG.SaveAs "d:\temp\prova2.dwg"
Set ACAD_DWG = ACAD_APP.ActiveDocument
End Sub
Private Sub BTN_Chiudi_DWG_Click()
ACAD_DWG.Close False
End Sub
Private Sub BTN_Disegna_Click()
ACAD_DWG.SendCommand "_line 100,100 200,200  "
ACAD_DWG.SendCommand "_Circle 2,2,0 4 "
ACAD_DWG.SendCommand "_zoom a "
End Sub
Private Sub BTN_Nuovo_Click()
ACAD_APP.Documents.Close
Set ACAD_DWG = ACAD_APP.Documents.Add
End Sub
Private Sub Form_Load()
Set ACAD_APP = New AcadApplication
Set ACAD_DWG = ACAD_APP.ActiveDocument
End Sub
Private Sub Form_Terminate()
On Error Resume Next
ACAD_DWG.Close False
ACAD_APP.Quit
Set ACAD_APP = Nothing
End Sub