Newsgroup: it.comp.software.cad
Titolo: Blocco AutoCad e VB6

In precedenza ho postato un messaggio avente oggetto: "Autocad e VB"
Poichè fino ad ora nessuno l'ha notato, mi permetto di modificar i termini
del problema.
Devo inserire in un disegno oltre ad altri dati (già introdotti)
anche un blocco (file dwg già realizzato)
Per fare ciò il codice da me scritto è il seguente:
'apertura dell'applicazione
Dim acadApp as Object
Set acadApp = GetObject (,"AutoCAD.Application")
   '   oppure (CreateObject ("AutoCAD.Application")
'Apertura documento
Dim acadDoc as Object
Set acadDoc = acadApp.ActiveDocument
'Apertura disegno
Dim miodisegno as Object
Set miodisegno = acadDoc.ModelSpace
'definisco il punto di inserimento del blocco
Dim insPnt(0 to 2) as double
'assegno i valori X.Y.Z
'Definisco il nome del Blocco da inserire
Dim BlockName as string
'assegno percorso e nome del file DWG che voglio considerare come blocco
'Difinisco l'oggetto blocco e lo porto nel lavoro corrente
Dim blockObj as acadBlock
Set BlockObj = blocks.Add (insPnt(0),BlockName)
'Inserisco il blocco nel disegno
Dim BlockRefObj as acadBlockReference
Set BlockRefObj = miodisegno.InsertBlock(insPnt(0),blockName,sx,sy,sz)
il codice però non sortisce il risultato voluto anzi mi restituisce   ERRORE
Dove sbaglio????
C'è qualcuno che sa dirmi qualcosa?
Grazie
Tommaso

 sulla guida di autocad ho trovato :
Variabile di sistema EXTNAMES
Concetti Procedure Riferimento
Tipo: numero intero
Salvata nel disegno
Valore iniziale: 1
Imposta i parametri per i nomi degli oggetti con nome, quali i layer e i
tipi di linea, memorizzati nelle tabelle delle definizioni.
0  Utilizza i parametri della Release 14, che limitano la lunghezza dei nomi
a 31 caratteri. I nomi possono includere le lettere dalla A alla Z, i numeri
da 0 a 9, il simbolo del dollaro ($), il carattere di sottolineatura (_) e
il trattino (-).
1  Utilizza i parametri di AutoCAD 2000 e release successive. I nomi possono
contenere un massimo di 255 caratteri e includere lettere dalla A alla Z,
numeri da 0 a 9, spazi e i caratteri speciali non utilizzati da Microsoft®
Windows® e AutoCAD per altri scopi.
Il nome del blocco inserito, sarà il nome del file, se questo ha degli spazi
o altri caratteri non validi, genera un errore.
questo potrtebbe essere un motivo.
ciao Gianfranco


Il nome del file è "cornice.dwg"  abbastanza semplice
Il messaggio di errore sull'ultima istruzione
Set BlockObj = miodisegno.InsertBock(insPnt(0),BlockName, sx,sy,sz)
è:
errore Rt 438
Proprietà o metodo non supportati dall'oggetto

Proprio ieri (Pasquetta) ho risolto il problema di cui all'oggetto.
Riporto qui la soluzione nel caso che questa interessi a qualcuno del NG.
Grazie ancora e saluti, Tommaso
    Set acadDoc = acadApp.ActiveDocument
    Set moSpace = acadDoc.ModelSpace
    'definizione del punto di inserimento del blocco es: punto 0,0,0
    Dim insPnt(0 To 2) As Double
    insPnt(0) = 0#: insPnt(1) = 0#: insPnt(2) = 0#
    ' Definizione del riferimento (File) esterno da inserire
    Dim xrefInserted As AcadExternalReference
    Dim PathName As String
    PathName = "c:\WINDOWS\DESKTOP\NomeFile.DWG"
    ' Inserimento del un riferimento esterno nel disegno corrente
    Set xrefInserted = moSpace. _
            AttachExternalReference(PathName, NomeBlocco, _
            insPnt, Sx, Sy, Sz, Rot, False)