Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] files DXF e DWG e  VoloView con VB6

Ero riuscito a fare la mia routinetta nel mio gestionale
per stampare i disegni richiamando Voloview.
Purtroppo però Voloview non apre i files nei formati
più recenti di autocad.
Ho cercato tanto su internet un programma alternativo
veramente free (tutti quelli dichiarati tali sono in realtà
dei test di prova che propongono poi l'acquisto).
Forse qualcuno di Voi ha incontrato lo stesso problema
e lo ha risolto?
Se così fosse gli sarei grato se mi spiegasse come.
Grazie e saluti a tutti.
Sauro



Guarda questo sw free:
http://www.print-conductor.com/features_pc.htm
Il problema principale può essere come farlo interagire con VB6, mi sa che devi
usare le API, (FindWindow, SendMessage ecc.) e qualche SendKeys.
--
ciao
  Stefano

Grazie Stefano.
Vado subito a vedere.

No, nion va.
Dichiara i dwg e dxf ma in realtà non li tratta.
Solo doc,xls ecc.
Grazie comunque.
Ciao, Sauro


Un programma free per visualizzare DWG e DXF può essere DWG TrueView:
http://usa.autodesk.com/adsk/servlet/index?id=6703438&siteID=123112
http://download.autodesk.com/esd/dwgtrueview/2007_2/SetupDWGTrueView2008_ITA.exe
William. 

Caro Sauro,
perché non provi eDrawings?
In italiano, gratuito nella versione base, veloce e funziona bene.
http://www.solidworks.it/pages/products/edrawings/professional.html
-- 
Ettore Massimo Albani 

Grazie Ettore.
Corro a provare.
Ciao, Sauro

Grazie William.
Provo subito.
Ciao, Sauro

Purtroppo non sono riuscito ad installarlo perchè
richiede un sistema operativo molto aggiornato
che al momento non ho.
Grazie comunque.
Ciao William.
Sauro

Ciao Ettore.
Come visualizzatore è ottimo.
Per la verità stampa anche bene.
Manca però una possibilità che c'era con voloview
che mi era molto utile.
Potevo (con opzioni cartella) associare ai files DXF,DWG il comando print
(tasto dx del mouse)
il seguente comando:
"C:\CartellaDiVoloView\Voloview.exe" /p "%1"
Questo comando mi permetteva (per esempio con
 esplora risorse + tasto dx del mouse + print) di
stampare direttamente il disegno.
Voloview si caricava, stampava e si chiudeva automaticamente.
Con qualche routine di VB6 potevo simulare questo
comportamento e quindi stampare i disegni direttamente
da dentro la mia applicazione.
Purtroppo con eDrawing questo non è possibile, o
per lo meno io non ci sono riuscito.
Forse invece di /p occorre qualche altro parametro ma
io non so quale.
eDrawing mi sarà comunque utile perchè in ogni caso
apre anche i formati più recenti dei DWG che non potevo
invece aprire con Voloview.
Grazie ancora Ettore.
Ciao, Sauro



Io sono riuscito a stampare su eDrawing da VB usando un po di API e qualche
SendKeys
Ho messo qui lo zip:
http://www.mytempdir.com/1313903
guarda se il metodo ti può aiutare
--
ciao
  Stefano

Bravo Stefano.
Vado a vedere se mi può essere utile
e poi ti saprò dire.
Grazie.
Sauro


Ho migliorato le cose usando lAPI SendInput, che avevo gią usato in passato dove
il Sendkeys dava problemi.
http://www.mytempdir.com/1314060
--
ciao
  Stefano

 lo meno qualche riga di chiarimento.
 
E' meglio se scrivi sempre sul ng, perchè li c'è gente che ne sa di + me.
 
Ti avevo mandato 2 esempi usando un sw che ho usato per funzioni simili.
 
Si tratta di progetti con solo un modulo senza form che uso per testare le varie
API.
 
In pratica funziona così:
All' inizio tramite la funzione EnumWindowsProc fai la ricerca di un testo il
tutte le finestre aperte mediante l'api GetWindowText, questo perchè devi
cercare solo una parte del testo, nel tuo caso ad esempio "eDrawings", il titolo
cambia.
 
Poi, una volta individuata la finestra e ottenuto l'handle, gli devi mandare i
comandi giusti.
Di solito si usa SendKeys, ma se si bebbono aprire delle finestre ulteriori o
usare Ctrl+ SendKeys non ce la fa.
 
In questo caso bisogna andare a scrivere direttamente sul buffer di tastiera con
CopyMemory e metterlo in esecuzione con SendInput.
Un pò macchinoso ma funziona bene, se non hai dimestichezza con le API ti può
sembrare difficile.
 
Ti avevo fatto uno .ZIP perchè per testare certe funzioni è meglipo fare l'exe,
a volte l'ide si può piantare usando CopyMemory & c.
 
Naturalmente per aprire eDrawings con il tuo file puoi usare una banale
ShellExecute.
--
ciao
  Stefano