Newsgroup: it.comp.software.cad
Titolo: Assegnare dati ad oggetti

Ciao a tutti,
Sto affrontando un problema su Autocad Map per il quale spero possiate
venirmi in aiuto. Avrei necessità di assegnare degli attributi ad un
oggetto. Mi spiego meglio: devo creare una serie di rettangoli
adiacenti, ognuno dei quali rappresenta un oggetto. Sarebbe molto
utile poter associare ad ogni oggetto (rettangolo) delle proprietà (ad
esempio: codice, descrizione, posizione).
A quanto pare dovrei assegnare un ID univoco ad ogni rettangolo...
Ho trovato su un blog un articolo molto interessante(http://
map3d.blogspot.com/2007/03/autoca...495909649851975
), che sembrerebbe
somigliare molto al mio problema.
Forse creando una topologia poligono potrei assegnare ad ogni
rettangolo un ID, per poi utilizzare l’ID topologico per
l’etichettatura.
E' spiegata una procedura “furba” per l’etichettatura nell’articolo
seguente, di risposta al precedente (
http://map3d.blogspot.com/2007/03/
autoca...717608167081992).
Ho provato a creare la topologia poligono, ma senza successo. Viene
visualizzato il seguente messaggio di errore:
“Si è verificato un errore durante la creazione della topologia.
Processo annullato.
Rilevate intersezioni.
Impossibile creare la topologia poligono”
Il disegno per il quale sto cercando di creare una topologia poligono
è costituito da rettangoli adiacenti. Per maggiore chiarezza invio in
allegato un piccolissimo file DWG, per il quale sto tentando di creare
la topologia, nel quale sono presenti i suddetti rettangoli.
Vi ringrazio nuovamente per la disponibilità
A presto
Carmelo
File DWG:
http://www.cadlandia.com/cgi-bin/upload/csaffi/20081119151052_riga_centroidi.zip

 
Ciao, devi provare a fare pulizia nel disegno. Per poter creare la 
topologia devi fare in modo che il disegno sia corretto topologicamente 
parlando, ossia che non ci siano appunto intersezioni oppure linee 
doppie sovrapposte. Gli strumenti di correzione li trovi in 
Map->Strumenti->Correggi cartografia...
Fatto ciò prova a ricreare la topologia, se tutto va bene il gioco è fatto.
Ciaz,
il Penne

 il Penne
Grazie per la tua risposta Pennellone!
Ho provato a correggere la cartografia come da te suggerito, ma senza
successo. Cosa mi consiglieresti di fare?
Per creare i rettangoli adiacenti (nel file dwg di cui ho postato il
link) ho semplicemente fatto un copia ed incolla, incollandoli uno di
seguito all'altro. Forse sarebbe meglio crearli in un altro modo per
evitare queste intersezioni??
Spero tu possa aiutarmi a risolvere, è da parecchio tempo che questa
cosa mi blocca, e nessuno è stato in grado di darmi un consiglio
corretto finora


Adesso che sono riuscito a creare la topologia il problema è creare
automaticamente delle etichette da assegnare ad ogni oggetto, in modo
da rendere possibile il collegamento tra gli oggetti ed i dati
presenti su un DB.
Per maggiore chiarezza vorrei ricordare qual'è il mio obiettivo:
assegnare dati ad oggetti sulla mia planimetria.
Per far ciò, è necessario associare un ID univoco ad ogni oggetto, in
modo da poterli collegare ai dati presenti su un DB. Dopo ciò, per
poter realizzare un collegamento automatico tra i dati del DB e gli
oggetti, è necessario etichettare gli oggetti.
Ho etichettato gli oggetti seguendo questa procedura:
1) "Gestione visualizzazioni"-> Dati-> Connetti a dati-> seleziono il
file SHP prima esportato
2) Adesso su "Gestione visualizzazioni" compare il nome del file SHP
connesso (riga_topologia)
3) Seleziono riga_topologia e clicco su "Stile"
4) Su "Etichetta entità geografiche" click sul pulsante "..."
5) Lascio "Multilinea" come scelta
6) Su "Proprietà da visualizzare" scelgo "POLYGON1" come nome del
campo
7) Clicco OK
8) Sul disegno vengono a questo punto visualizzate delle etichette,
posizionate sul lato inferiore degli oggetti
A questo punto provo a collegare i dati del DB con gli oggetti
etichettati, nel seguente modo:
1) "Area di lavoro"-> Modelli di collegamento-> Definisci modello di
collegamento...
2) Seleziono la tabella dati_oggetto, che avevo creato dalla JOIN tra
la tabella TPMCNTR_miatopologia (tabella dei centroidi della
topologia) e la tabella blocchi (tabella con i dati da associare agli
oggetti)
3) Come "Chiave" seleziono ID, ed assegno il nome collegam al "Modello
di collegamento"
4) A questo punto su Modelli di collegamento compare il modello di
collegamento creato
5) Clicco col tasto destro sul modello di collegamento-> Genera
collegamenti...-> Testo racchiuso-> Crea collegamenti database-> Il
collegamento deve esistere-> OK
6) Alla richiesta rispondo TUTTI
7) Sono stati creati 0 collegamenti
Cosa c’è di sbagliato? Come mai non vengono creati i collegamenti?
Se seguo la stessa procedura, ma utilizzando delle etichette create
manualmente, funziona...
Allego i files sopra menzionati:
http://www.cadlandia.com/cgi-bin/upload/csaffi/20081124105626_etichettare.zip
Spero nel vostro aiuto
A presto e buona giornata
Carmelo

 
Non puoi creare una unione di dati tra l'etichettatura (che poi è una 
visualizzazione del dato contenuto nel db della shape) e un db collegato 
con il metodo che hai descritto.
Il metodo funziona quando ci sono dei testi cad da "leggere" all'interno 
del disegno e quindi il Map riesce a fare i collegamenti al db collegato 
col modello di collegamento.(scusa il gioco di parole!)
Per collegare dei dati da un db .mdb (ad esempio) devi usare l'FDO ossia 
il pulsantone "Dati..." che c'è nel riquadro attività. Infatti devi 
creare una "join" (presente solo dalla versione 2008 in su) basata 
sull'id presente sia nella tabella della shape sia nel mdb che 
collegherai al progetto.
Per collegare un mdb utilizzando l'FDO devi creare una nuova origine 
dati che punti al tuo mdb:
1) start -> pannello di controllo -> strumenti di amministrazione -> 
orgini dati (ODBC)
2) clicca sulla tab "DSN di sistema" e clicca su "aggiungi" -> Microsoft 
Access Driver poi dai un nome alla connessione, cerchi il file mdb nella 
cartella dova risiede nel tuo pc e fatto.
3) in Map vai su "Dati" -> Aggiungi connessione odbc -> clicca sopra il 
pulsante coi tre ... e ti appare la lista delle connessioni DSN. 
Selezioni la tua, lasci in bianco user e pwd e il db ora è connesso al 
progetto (non è necessario cliccare su "Aggiungi a carta").
4)Poi carichi la tua shape, e nel riquadro "Gestione visualizzazioni" 
->tasto DX e scegli "join" a quel punto selezioni il/i campi su cui vuoi 
effettuare il "join" e così hai unito i dati del db alla tua shape.
Spero di esserti stato utile.
ciaz
il Penne


Grazie Penne!
Sono riuscito a collegare i dati. :-)
Quando però da Autocad Map esporto i dati mi esporta solo il nome dei
campi aggiuntivi collegati, senza il loro valore. Mentre dei campi
originali del disegno esporta tutti i dati...
Come posso fare?
Allego il file SDF esportato dal Map:
http://www.cadlandia.com/cgi-bin/upload/csaffi/20081125101855_riga_con_dati.zip

 - Mostra testo citato -
Ciao Carmelo,
Non ti seguo: se hai collegato i dati del DB all'SHP con il comando
Join, perchè ora esporti i dati dinuovo in Shapefile?
Lo Shapefile dovresti averlo già.
GimmiGIS
www.3dmap.it

 - Mostra testo citato -
PS:se vuoi pubblicare con MapGuide puoiusare direttamentelo SHP, senza
convertire in SDF!
GimmiGIS
www.3dmap.it

 GimmiGISwww.3dmap.it- Nascondi testo citato
Perchè il mio obiettivo è aggiungere al file SHP dei campi aggiuntivi.
Dopo aver eseguito la JOIN, il layer generato  contiene i campi
originali con in più i campi aggiuntivi provenienti dalla tabella
esterna. Ma a me serve avere un SHP che contenga tutti questi dati,
non me ne faccio niente se rimangono su Autocad nel DWG... devo
importarli su MapGuide...
Spero di essere stato più chiaro :-)
Ciao
Carmelo

 GimmiGISwww.3dmap.it- Nascondi testo citato
Non è che io voglia convertire in SDF... è che seguendo i consigli di
Pennellone sono riuscito a fare la JOIN tra i dati iniziali e la
tabella esterna... Il layer adesso contiene sia i dati iniziali che
quelli aggiuntivi che volevo aggiungere.
L'unico problema è che quando esporto il layer come SHP esso contiene
tutti i campi, ma di quelli aggiuntivi ho solo il nome del campo, il
loro valore è vuoto

csaffi ha scritto:

Ma come lo fai l'export? Usando il "Copia globale"?
Cià
il Penne

csaffi ha scritto:

Tra l'altro: e se provi a pubblicare direttamente su MapGuide?...
Cià,
il Penne

 il Penne
Come posso pubblicare direttamente su MapGuide?
Un'altra domanda: MapGuide gestisce coordinate del tipo 3828.45234
(Degrees Decimal Minutes) ? O gestisce solo quelle del tipo 38.23122
(Decimal Degrees) ?