Discussione:
access e autocad
(troppo vecchio per rispondere)
access il top
2005-01-18 06:31:08 UTC
Permalink
Ciao a tutti volevo chiedervi un'informazione riguardo al collegamento
tra access e Autocad, qualcuno ha mai fatto qualcosa del genere.
Sono riuscito a trovare che si può fare però volevo il vostro parere.
io alla fine dell'inserimento dei dati in access vorrei creare il
file.dxf

Grazie ciao
Il Gatto
2005-01-18 16:36:13 UTC
Permalink
Post by access il top
Ciao a tutti volevo chiedervi un'informazione riguardo al collegamento
tra access e Autocad, qualcuno ha mai fatto qualcosa del genere.
Autocad nelle versioni 200x (sicuro dal 2002 in poi, non so i precedenti) ha
un'interfaccia COM che permette di manipolare a piacimento tutti gli oggetti
di un disegno. Basta collegare nei riferimenti di VBA la "Libreria dei tipi
di AutoCAD 2000" e giocare con tutti gli oggetti della gerarchia AutoCAD.*,
abbastanza facile da apprendere e gestire e comunque corredata di un help in
linea sufficiente a venire a capo di quasi tutto.

Io ho scritto (in VB che lavora su SqlServer, ma il concetto è lo stesso) un
programma di catalogazione automatica che usa gli attributi del disegno e ti
assicuro che funziona senza problemi: legge e scrive nel disegno, come
faresti con un documento Word o un foglio Excel.

IG
tiziano
2005-01-19 09:15:20 UTC
Permalink
Post by Il Gatto
Post by access il top
Ciao a tutti volevo chiedervi un'informazione riguardo al collegamento
tra access e Autocad, qualcuno ha mai fatto qualcosa del genere.
Autocad nelle versioni 200x (sicuro dal 2002 in poi, non so i precedenti) ha
un'interfaccia COM che permette di manipolare a piacimento tutti gli oggetti
di un disegno. Basta collegare nei riferimenti di VBA la "Libreria dei tipi
di AutoCAD 2000" e giocare con tutti gli oggetti della gerarchia AutoCAD.*,
abbastanza facile da apprendere e gestire e comunque corredata di un help in
linea sufficiente a venire a capo di quasi tutto.
Io ho scritto (in VB che lavora su SqlServer, ma il concetto è lo stesso) un
programma di catalogazione automatica che usa gli attributi del disegno e ti
assicuro che funziona senza problemi: legge e scrive nel disegno, come
faresti con un documento Word o un foglio Excel.
Ciao,
non è che potresti spiegare per un profano come me, come fare?
ovvero carico le librerie da rierimenti e poi la visualizzazione?
Mi è stato spiegato che se uso Windows xp dovrei scaricare gli ocx per la
visualizzazione...
un paio di info in più mi farebbero piacere.
grazie
Tiz


--------------------------------
Inviato via http://arianna.libero.it/usenet/
Il Gatto
2005-01-19 12:00:42 UTC
Permalink
Post by tiziano
ovvero carico le librerie da rierimenti e poi la visualizzazione?
Mi è stato spiegato che se uso Windows xp dovrei scaricare gli ocx per la
visualizzazione...
Dunque... l'applicativo che avevo scritto io è un ausilio al disegnatore e
come tale si aspetta che AutoCAD sia già installato e funzionante quando
arriva lui. Quindi gli ocx (non importa su che s.o.) ci sono già e sono già
registrati. Se quello che ti serve è la sola visualizzazione Autodesk
distribuisce un viewer gratuito, che però non ho mai adoperato e non so che
funzionalità consenta al programmatore (oltre la linea di comando).

Se hai AutoCAD, crea un disegno e salvalo in c:\ come prova.dwg.

Poi da Access, dopo aver aperto il tuo db, premi Alt-F11 (finestra di Visual
Basic), vai in Strumenti / Riferimenti, cerchi nell'elenco "AutoCAD 2000
Object Library" e la spunti.

A questo punto, tanto per cominciare, crea un form e mettici un pulsante.
Sull'evento Click del pulsante copiaci dentro quanto segue:

Dim AcadAppl As New AutoCAD.AcadApplication
Dim AcadDwg As AutoCAD.AcadDocument

Set AcadDwg = AcadAppl.Documents.Open("c:\prova.dwg")
AcadAppl.Visible = True

Avvia il form e premi il pulsante: si deve avviare Autocad con dentro il tuo
disegno. Per ulteriori info porta il cursore sulle dichiarazioni di tipo
AcadApplication e AcadDocument e premi F1. Quindi studiati proprietà e
metodi di entrambi. Per la cronaca l'insieme Blocks di un oggetto
AcadDocument contiene, nidificati, tutti gli oggetti del disegno (righe,
curve, attributi, ecc.).

IG
ALESSANDRO Baraldi
2005-01-22 18:42:38 UTC
Permalink
Post by Il Gatto
Post by tiziano
ovvero carico le librerie da rierimenti e poi la visualizzazione?
Mi è stato spiegato che se uso Windows xp dovrei scaricare gli ocx per la
visualizzazione...
Dunque... l'applicativo che avevo scritto io è un ausilio al disegnatore e
come tale si aspetta che AutoCAD sia già installato e funzionante quando
arriva lui. Quindi gli ocx (non importa su che s.o.) ci sono già e sono già
registrati. Se quello che ti serve è la sola visualizzazione Autodesk
distribuisce un viewer gratuito, che però non ho mai adoperato e non so che
funzionalità consenta al programmatore (oltre la linea di comando).
Se hai AutoCAD, crea un disegno e salvalo in c:\ come prova.dwg.
Poi da Access, dopo aver aperto il tuo db, premi Alt-F11 (finestra di Visual
Basic), vai in Strumenti / Riferimenti, cerchi nell'elenco "AutoCAD 2000
Object Library" e la spunti.
A questo punto, tanto per cominciare, crea un form e mettici un pulsante.
Dim AcadAppl As New AutoCAD.AcadApplication
Dim AcadDwg As AutoCAD.AcadDocument
Set AcadDwg = AcadAppl.Documents.Open("c:\prova.dwg")
AcadAppl.Visible = True
Avvia il form e premi il pulsante: si deve avviare Autocad con dentro il tuo
disegno. Per ulteriori info porta il cursore sulle dichiarazioni di tipo
AcadApplication e AcadDocument e premi F1. Quindi studiati proprietà e
metodi di entrambi. Per la cronaca l'insieme Blocks di un oggetto
AcadDocument contiene, nidificati, tutti gli oggetti del disegno (righe,
curve, attributi, ecc.).
IG
Questo è decisamente interesante.
L'applicativo per la visualizzazione dei DWG si chiama VOLOVIEW, ma fa
schifo, stampa
solo l'area visualizzata senza consentire opzioni particolari.

Dove lavoro abbiamo realizzato un archivio gestionale tecnico che per ora
gestisce
solo la parte informativa legata alla documentazione che viene aperta con il
programma
predefinito dall'applicativo stesso e non quello di default.

Quello che si voleva implementare era l'iterazione tra la schemistica fatta
su Database(Excel)
in quanto n°colonne molto elevato e i relativi disegni tecnici in DWG.

Quello che proponi è ottimo, e all'atto pratico mi eviterebbe di avere un
disegnatore
per inserire le modifiche apportate al Databse(Excel) direttamente sul
disegno....!

Meta molto ambiziosa, ma da valutare per l'ottimizzazione degli
aggiornamenti.

Noi gestiamo un archivio documetazione abbastanza vasto con più di 1milione
di documenti
catalogati per differenti aree tecniche e competenze....!

Se hai qualche dettaglio aggiuntivo senza scendere nel tuo sviluppo
ovviamente mi piacerebbe
approfondire(specialmente lato DWG come impostazioni)

Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
access il top
2005-01-24 06:19:19 UTC
Permalink
Post by Il Gatto
Post by Il Gatto
Post by tiziano
ovvero carico le librerie da rierimenti e poi la visualizzazione?
Mi è stato spiegato che se uso Windows xp dovrei scaricare gli ocx
per
Post by Il Gatto
la
Post by Il Gatto
Post by tiziano
visualizzazione...
Dunque... l'applicativo che avevo scritto io è un ausilio al disegnatore e
come tale si aspetta che AutoCAD sia già installato e funzionante quando
arriva lui. Quindi gli ocx (non importa su che s.o.) ci sono già e
sono
Post by Il Gatto
già
Post by Il Gatto
registrati. Se quello che ti serve è la sola visualizzazione Autodesk
distribuisce un viewer gratuito, che però non ho mai adoperato e non
so
Post by Il Gatto
che
Post by Il Gatto
funzionalità consenta al programmatore (oltre la linea di comando).
Se hai AutoCAD, crea un disegno e salvalo in c:\ come prova.dwg.
Poi da Access, dopo aver aperto il tuo db, premi Alt-F11 (finestra
di
Post by Il Gatto
Visual
Post by Il Gatto
Basic), vai in Strumenti / Riferimenti, cerchi nell'elenco "AutoCAD 2000
Object Library" e la spunti.
A questo punto, tanto per cominciare, crea un form e mettici un pulsante.
Dim AcadAppl As New AutoCAD.AcadApplication
Dim AcadDwg As AutoCAD.AcadDocument
Set AcadDwg = AcadAppl.Documents.Open("c:\prova.dwg")
AcadAppl.Visible = True
Avvia il form e premi il pulsante: si deve avviare Autocad con
dentro il
Post by Il Gatto
tuo
Post by Il Gatto
disegno. Per ulteriori info porta il cursore sulle dichiarazioni di tipo
AcadApplication e AcadDocument e premi F1. Quindi studiati proprietà e
metodi di entrambi. Per la cronaca l'insieme Blocks di un oggetto
AcadDocument contiene, nidificati, tutti gli oggetti del disegno (righe,
curve, attributi, ecc.).
IG
Questo è decisamente interesante.
L'applicativo per la visualizzazione dei DWG si chiama VOLOVIEW, ma fa
schifo, stampa
solo l'area visualizzata senza consentire opzioni particolari.
Dove lavoro abbiamo realizzato un archivio gestionale tecnico che per ora
gestisce
solo la parte informativa legata alla documentazione che viene aperta con il
programma
predefinito dall'applicativo stesso e non quello di default.
Quello che si voleva implementare era l'iterazione tra la schemistica fatta
su Database(Excel)
in quanto n°colonne molto elevato e i relativi disegni tecnici in DWG.
Quello che proponi è ottimo, e all'atto pratico mi eviterebbe di avere un
disegnatore
per inserire le modifiche apportate al Databse(Excel) direttamente sul
disegno....!
Meta molto ambiziosa, ma da valutare per l'ottimizzazione degli
aggiornamenti.
Noi gestiamo un archivio documetazione abbastanza vasto con più di 1milione
di documenti
catalogati per differenti aree tecniche e competenze....!
Se hai qualche dettaglio aggiuntivo senza scendere nel tuo sviluppo
ovviamente mi piacerebbe
approfondire(specialmente lato DWG come impostazioni)
Ciao
--
@Alex (Alessandro Baraldi)
----------------------------------------------------------------------
-----
Post by Il Gatto
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
----------------------------------------------------------------------
-----
come dwg mi hanno già detto che sarà mlto difficile, ovviamente ho
cercato anche un sito e un forum che parlano di autocad e mi hanno
inviato del materiale che ti posto.
autocad e access qualcuno è riuscito a farli comunicare con i dxf altro
formato di disegno supportato da autocad e molti altri programmi di
disegno tecnico.
ti ringrazio per l'interesse.
ps io non ho ancora avuto tempo di aprire gli allegati che ti mando,
ricevuti da un frequentatore di newsgroup di autocad.
ALESSANDRO Baraldi
2005-01-24 08:01:58 UTC
Permalink
Post by access il top
come dwg mi hanno già detto che sarà mlto difficile, ovviamente ho
cercato anche un sito e un forum che parlano di autocad e mi hanno
inviato del materiale che ti posto.
autocad e access qualcuno è riuscito a farli comunicare con i dxf altro
formato di disegno supportato da autocad e molti altri programmi di
disegno tecnico.
ti ringrazio per l'interesse.
ps io non ho ancora avuto tempo di aprire gli allegati che ti mando,
ricevuti da un frequentatore di newsgroup di autocad.
Intanto grazie per la cortesia.
Tempo non ne ho molto nemmeno io, ma dato l'interesse per la cosa
un'occhiata la dò.
Se riuscissi a capirci e ad ottenere qualche INFO ti aggiorno sicuramente.

Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
Il Gatto
2005-01-25 16:48:00 UTC
Permalink
Post by ALESSANDRO Baraldi
Se hai qualche dettaglio aggiuntivo senza scendere nel tuo sviluppo
ovviamente mi piacerebbe
approfondire(specialmente lato DWG come impostazioni)
L'unico che mi sento di dirti e che magari ti eviterà di diventare scemo
come è capitato a me per un pomeriggio intero: ogni AcadBlock contiene un
insieme Items con dentro le primitive grafiche e altro. Ogni elemento di
Items è un variant di tipologia differente a seconda della primitiva che
contiene, e il tipo di primitiva lo leggi in ObjectName dell'Item, che non
è - come magari ti verrebbe erroneamente da pensare - il nome della
primitiva (magari il nome del blocco di oggetti, tipo "Cuscinetto Destro"),
ma bensì un'etichetta di testo con la tipologia dell'item
("AcDbBlockReference" = AutoCad.AcadBlockReference, "AcLine" =
AutoCad.AcadLine, "AcDbBlockDefinition" = AutoCad.AcadBlock (per blocchi
nidificati), ecc...). Intuitivo, no?!

Questo impedisce anche di usare un For Each su tale insieme, devi passarti
un elemento alla volta e, determinato cosa cavolo è puoi p.es. fare il
"casting" assegnandolo a una variabile del giusto tipo per un uso più
pratico a livello di editing del codice. Magari (anzi, sicuramente) sarò io
che sono scemo, ma dalla documentazione questo uso perverso di una proprietà
di nome ObjectName non è menzionata da nessuna parte...

IG
ALESSANDRO Baraldi
2005-01-25 21:12:22 UTC
Permalink
Post by Il Gatto
L'unico che mi sento di dirti e che magari ti eviterà di diventare scemo
come è capitato a me per un pomeriggio intero: ogni AcadBlock contiene un
insieme Items con dentro le primitive grafiche e altro. Ogni elemento di
Items è un variant di tipologia differente a seconda della primitiva che
contiene, e il tipo di primitiva lo leggi in ObjectName dell'Item, che non
è - come magari ti verrebbe erroneamente da pensare - il nome della
primitiva (magari il nome del blocco di oggetti, tipo "Cuscinetto Destro"),
ma bensì un'etichetta di testo con la tipologia dell'item
("AcDbBlockReference" = AutoCad.AcadBlockReference, "AcLine" =
AutoCad.AcadLine, "AcDbBlockDefinition" = AutoCad.AcadBlock (per blocchi
nidificati), ecc...). Intuitivo, no?!
Questo impedisce anche di usare un For Each su tale insieme, devi passarti
un elemento alla volta e, determinato cosa cavolo è puoi p.es. fare il
"casting" assegnandolo a una variabile del giusto tipo per un uso più
pratico a livello di editing del codice. Magari (anzi, sicuramente) sarò io
che sono scemo, ma dalla documentazione questo uso perverso di una proprietà
di nome ObjectName non è menzionata da nessuna parte...
IG
Ci stavo già sbattendo contro....!!
Non è un problema per me iterare gli oggetti
o fare delle prove, ma i tuoi suggerimenti cadono proprio a fagiolo
in quanto mi pare che il normale modello ad oggetti al quale sono abituato
sia disatteso in modo notevole.

Ho reperito questi 2 documenti nei quali ho trovato
il Modello ad Oggetti che sicuramente aiuta.
Se ti mancassero, ma non credo, posso inviarteli.

AutoCAD 2000 VBA Developer's Guide.pdf
Autocad 2004 ActiveX and VBA Developer's Guide.pdf

Grazie per le dritte, ora devo solo giocare un pò.
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
access il top
2005-01-25 22:28:04 UTC
Permalink
Post by Il Gatto
Post by Il Gatto
L'unico che mi sento di dirti e che magari ti eviterà di diventare scemo
come è capitato a me per un pomeriggio intero: ogni AcadBlock contiene un
insieme Items con dentro le primitive grafiche e altro. Ogni
elemento di
Post by Il Gatto
Post by Il Gatto
Items è un variant di tipologia differente a seconda della primitiva che
contiene, e il tipo di primitiva lo leggi in ObjectName dell'Item, che non
è - come magari ti verrebbe erroneamente da pensare - il nome della
primitiva (magari il nome del blocco di oggetti, tipo "Cuscinetto
Destro"),
Post by Il Gatto
ma bensì un'etichetta di testo con la tipologia dell'item
("AcDbBlockReference" = AutoCad.AcadBlockReference, "AcLine" =
AutoCad.AcadLine, "AcDbBlockDefinition" = AutoCad.AcadBlock (per blocchi
nidificati), ecc...). Intuitivo, no?!
Questo impedisce anche di usare un For Each su tale insieme, devi
passarti
Post by Il Gatto
un elemento alla volta e, determinato cosa cavolo è puoi p.es. fare il
"casting" assegnandolo a una variabile del giusto tipo per un uso più
pratico a livello di editing del codice. Magari (anzi, sicuramente)
sarò
Post by Il Gatto
io
Post by Il Gatto
che sono scemo, ma dalla documentazione questo uso perverso di una
proprietà
Post by Il Gatto
di nome ObjectName non è menzionata da nessuna parte...
IG
Ci stavo già sbattendo contro....!!
Non è un problema per me iterare gli oggetti
o fare delle prove, ma i tuoi suggerimenti cadono proprio a fagiolo
in quanto mi pare che il normale modello ad oggetti al quale sono abituato
sia disatteso in modo notevole.
Ho reperito questi 2 documenti nei quali ho trovato
il Modello ad Oggetti che sicuramente aiuta.
Se ti mancassero, ma non credo, posso inviarteli.
AutoCAD 2000 VBA Developer's Guide.pdf
Autocad 2004 ActiveX and VBA Developer's Guide.pdf
Grazie per le dritte, ora devo solo giocare un pò.
--
@Alex (Alessandro Baraldi)
----------------------------------------------------------------------
-----
Post by Il Gatto
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
----------------------------------------------------------------------
-----
ciao,
ti sono stati utili gli allegati che ti ho mandato??
per favore tienimi aggiornato se riesci a far qualcosa.
ALESSANDRO Baraldi
2005-01-25 23:05:25 UTC
Permalink
Post by access il top
ciao,
ti sono stati utili gli allegati che ti ho mandato??
per favore tienimi aggiornato se riesci a far qualcosa.
Certamente, ne ho trovati altri in aggiunta(forse uno solo)
in ogni caso sono circa 6Mb di documentazione ora in tutto.

Tenerti aggiornato sarà difficile per il semplice motivo che
giocandoci, anche grazie alla tua concessione ho capito che
per gestire in modo utile Autocad serve partire da una Base
di Sorgenti formattata in un modo standard, usando Blocchi per disegnare,
nei quali è possibile accedere alle proprietà.

Nel mio caso si trattava di Informatizzare gli aggiornamenti a catena nei
disegni, bella cosa dirai.............!! Già ma ci sono troppi ma...!

Ora nel mio settore, disegno Eletrrico, Elettronico, Meccanico e Civile....
praticamente un pò tutte le discipline, ognuno ha disegnato da autodidatta
ed i sorgenti non sono gestibili, sarebbe impossibile rintracciare gli
oggetti
per Primitive.

Mettere in piedi una sorta di REVISIONE sarebbe improbabile data la
mole.(i Files sono qualche centinaia di Migliaia, tieni conto poi che
in alcuni Sorgenti ci sono decine di Layers, ogni Layer un Disegno, anche
questa è una Tecnica assurda, ma c'è.....)

Questo per dire che ho avuto una simpatica parentesi, ma la chiudo
anche subito per inapplicabilità al mio lavoro....!

Peccato.

Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
access il top
2005-01-26 06:31:59 UTC
Permalink
Post by ALESSANDRO Baraldi
Post by access il top
ciao,
ti sono stati utili gli allegati che ti ho mandato??
per favore tienimi aggiornato se riesci a far qualcosa.
Certamente, ne ho trovati altri in aggiunta(forse uno solo)
in ogni caso sono circa 6Mb di documentazione ora in tutto.
Tenerti aggiornato sarà difficile per il semplice motivo che
giocandoci, anche grazie alla tua concessione ho capito che
per gestire in modo utile Autocad serve partire da una Base
di Sorgenti formattata in un modo standard, usando Blocchi per
disegnare,
Post by ALESSANDRO Baraldi
nei quali è possibile accedere alle proprietà.
Nel mio caso si trattava di Informatizzare gli aggiornamenti a catena nei
disegni, bella cosa dirai.............!! Già ma ci sono troppi ma...!
Ora nel mio settore, disegno Eletrrico, Elettronico, Meccanico e Civile....
praticamente un pò tutte le discipline, ognuno ha disegnato da autodidatta
ed i sorgenti non sono gestibili, sarebbe impossibile rintracciare gli
oggetti
per Primitive.
Mettere in piedi una sorta di REVISIONE sarebbe improbabile data la
mole.(i Files sono qualche centinaia di Migliaia, tieni conto poi che
in alcuni Sorgenti ci sono decine di Layers, ogni Layer un Disegno, anche
questa è una Tecnica assurda, ma c'è.....)
Questo per dire che ho avuto una simpatica parentesi, ma la chiudo
anche subito per inapplicabilità al mio lavoro....!
Peccato.
Ciao
--
@Alex (Alessandro Baraldi)
----------------------------------------------------------------------
-----
Post by ALESSANDRO Baraldi
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
----------------------------------------------------------------------
-----
io ti faccio un'altra domanda visto la tua disponibilità.

ho una tabella access con questi campi

x y descrizione

è difficile creare un layer punti e inserire le coordinate xy come punto
e creare layer descrizione con alla posizione xy inserire il testo?

grazie per l'informazione
Alessandro Baraldi
2005-01-26 07:42:51 UTC
Permalink
"access il top" <***@yahoo.it> wrote in message news:41f73966$0$8210$***@news.tiscali.it
[CUT]
Post by access il top
io ti faccio un'altra domanda visto la tua disponibilità.
ho una tabella access con questi campi
x y descrizione
è difficile creare un layer punti e inserire le coordinate xy come punto
e creare layer descrizione con alla posizione xy inserire il testo?
grazie per l'informazione
Ho provato solo a disegnare una primitiva e ricavarne i dati.
Tieni conto che un Layer non ha coordinate, è un Foglio sovrapposto.
In pratica lo sviluppo in Layer può essere inteso come una 4°
dimensione.
Ogni Layer è un'area di Disegno tridimensionale con le caratteristiche
ereditate dal Foglio di lavoro.
Questo implica che non è possibile definire un Layer in X/Y, ma
un Layer sarà un'Oggetto con Nome nel quale avrai
Proprietà(Congelato/Visibile..ecc..), Metodi ed Oggetti(le primitive).

Ora l'oggetto Application.ACad che hai aperto avrà un'insieme di
Oggetti(Layer) sotto i quali avrai le Classi delle primitive.

E' un pò come accedere ad una TextBox nella Collection TextBoxes o
controls all'interno della Classe Form.

Non ho approfondito la realizzazione nello specifico, quindi
posso solo darti qualche suggerimento intuitivo da verificare.

Ciao.
@Alex
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Continua a leggere su narkive:
Loading...