TopViewerr.html
TOP VIEWER
V24.0.0
Questo documento spiega in dettaglio le opzioni del QS DWG Viewer, il visualizzatore di disegni dwg di QS Informatica.
[TOC]
Introduzione
Il visualizzatore consente di visualizzare e navigare (zoom, pan) un disegno DWG utilizzando le librerie ODA. La particolarità del visualizzatore è quella di permettere di visualizzare la struttura parti e i relativi attributi.
Utilizzo
Il visualizzatore viene attualmente utilizzato da DED Plus come visualizzatore di files DWG.
Funzionalità
- Visualizzazione di files in formato DWG
- Zoom estensione, zoom finestra, Pan
- Sfondo impostabile (bianco/nero)
- Drag&Drop di files in formato dwg
- Multidocumento (sperimentale)
- Misura indicativa
- Conversione in PDF
- Visualizzazione dell'albero parti
- Visualizzazione attributi parti
- Visualizzazione distinta parti
Dipendenze
Il visualizzatore utilizza alcune dipendenze esterne. In particolare:
- DevExpress UI
- Oda Libraries
- VbLuaNet.dll
- QsInformatica.Utils.dll
- TopDistNet.dll
- LuaExportNet.dll
Questi componenti sono distribuiti da QS Informatica nella cartella di installazione e non più nella cartella "%Common Files%\QS".
Questo per garantire la risoluzione dei files e la compatibilità.
Vi è ancora la possibilità i redistribuire le dipendenze all'interno dei file comuni rimuovendole dalla cartella di installazione. (sconsigliato)
Configurazione
Le opzioni di configurazione possono essere impostate nel file QsDwgViewer.exe.config. (default)
Le impostazioni, dopo il settaggio utente, sono salvate nella cartella "%AppData%\Local\QS_Informatica".
UseDarkBackground
Consente di impostare lo sfondo nero di default.
TopMost
Imposta l'applicazione per essere mostrata sempre in primo piano.
GraphicsDevice
Imposta il driver grafico da utilizzare. Possibili scelte sono
Driver |
Descrizione |
WinGDI |
Solo per 2D. E' il default. |
WinGLES2 |
Per 2D e 3D |
WinOpenGL |
Per 2D e 3D |
WinDirectX |
Per 2D e 3D |
UpdateTitleblockOnOpen
Consente di eseguire l'aggiornamento del cartiglio all'apertura del disegno. Serve solo per disegni TOP.
RemoveHiddenGeometries
Consente di rimuovere le geometrie nascoste all'apertura del disegno. Le geometrie nascoste possono creare problemi nel calcolo delle dimensioni del disegno per la stampa.
SpotlightKeepOnPrint (deprecata, vedi TurnOffSpotlightOnPrint)
Indica se le linee luminose devono essere mantenute attive in stampa
TurnOffSpotlightOnPrint
Indica se le linee luminose devono essere spente in stampa
CadConfigTarget
Indica la provenienza del file di configurazione da caricare:
- Custom (default, vedi CadConfigPath)
- Acad
- AcadLt
- Brx
CadConfigPath
Indica la path di risoluzione dei files CAD di supporto (font, pc3, ctb, ..). Può essere un percorso locale o di rete. Prendere la struttura di cartelle modello come esempio. In fase di risoluzione dei file il visualizzatore stampa a linea di comando i files non risolti.
Se non è indicata viene usata la risoluzione interna che cerca di individuare la versione di AutoCAD e reperire da questa i files mancanti.
PluginsPath
Indica la cartella dei plugins. I plugins verranno caricati solo da questa cartella.
RemoveSpotlightOnOpen
In fase di apertura del disegno, rimuove le vecchie linee luminose.
ZoomExtentsOnOpen
Esegue lo zoom estensione del disegno in fase di aperture del dwg.
TopEnvPath
Percorso di ambiente, contiene i file necessari per il corretto funzionamento di distinta ed attributi.
File presenti di default: "attrib.txt", "TopBom.ini", "TOPBOM.lua"
OverrulesOnAnnotation
Disattiva/attiva la colorazione delle annotazioni da parte delle linee luminose.
UcsIcon
Nasconde/visualizza la rappresentazione grafica del sistema di coordinate corrente.
ViewWidget
Nasconde/visualizza il tastierino di selezione della "Vista"
PosAttr
Attributo di distinta legato alla pallinatura Top.
UnderMouseCheck
Disabilita/abilita le animazioni legate a passaggio del mouse sopra alle entità. (Esempio: etichetta di visualizzaione del nome della parte)
TurnOffLayer
Utilizza lo spegnimento layer, anzichè il congelamento, per la visualizzazione delle parti
NOTA: la modalità off, benchè molto più rapida, non gestisce correttamente i blocchi con entità su layer diversi
API - linea di comando
Il modulo può essere pilotato da altre applicazioni .NET tramite l'invio di semplici comandi. I comandi attualmente supportati sono:
shutdown
Chiude l'applicazione
opendwg|dwgpath
Apre un disegno dwg. Occorre passare la path del file dwg dopo un pipe "|"
profile|[ simple/standard ]
Imposta l'interfaccia utente secondo uno dei profili predefiniti:
- simple --> Il profilo simple nasconde l'albero parti e l'editor attributi.
- standard --> mostra albero parti e editor attributi (default)
handle
Per legare il dialogo del viewer ad un altro dialogo (Esempio: D&D)
optreset
Resetta le opzioni leggendo i valori di deafult dal file .config
Modalità singleton
Quando pilotato da un programma esterno è necessario assicurarsi di avere una sola istanza del programma attiva. Con questa opzione il programma chiude automaticamente l'istanza attiva e ne avvia una nuova.
QsDwgViewer.exe "D:\Program Files\QS_Informatica\QSMech16_A2013\Esempi\Disegno.dwg" /singleton=1
Linea di comando
La command line consente di passare varie opzioni al visualizzatore. La sintassi è la seguente:
QsDwgViewer dwgfile options
dove il primo parametro è sempre il percorso del file DWG da visualizzare seguito dalle varie opzioni.
Valori di ritorno
L'applicazione ritorna al chiamante un valore di ritorno secondo gli standard.
Valore |
Significato |
0 |
OK |
1-99 |
Error standard |
100+ |
Errore riservato alle personalizzazioni LUA |
Per le personalizzazioni è possibile impostare il valore di errore tramite la chiamata:
DwgViewer.ErrorLevel = errnum
Dove errnum è il codice numerico di errore. Ricordarsi di prelevare sempre il valore corrente per verifica.
Esecuzione di codice LUA
Il visualizzatore consente l'esecuzione di codice LUA. E' possibile passare il codice da eseguire a linea di comando. Normalmente si passa una chiamata a funzione. La funzione dovrà già essere definita nelle personalizzazioni del visualizzatore.
lua
lua=SayHello()
Nell'esempio viene chiamata la funzione SayHello che sarà stata definita nelle personalizzazioni.
function SayHello()
alert("Hello")
end
File di configurazione
Poiché i parametri destinati a essere passati a linea di comando possono essere molti è possibile preimpostare un file di configurazione e poi poi passare questo direttamente alla lina di comando. Il file di configurazione è un normale file di testo con le coppie nome-valore separate da un uguale. Le righe di commento devono iniziare con un ";"
;; PDF specific parameters
pdf_dpi_geom=300
pdf_dpi_hatch=150
Opzioni
Seguono le varie opzioni disponibili
cfg_file (obsoleta)
/cfg_file=C:\temp\myconfig.txt
Il percorso del file di configurazione. Il file può contenere i parametri di configurazione di default. Oltre a questo file si possono passare anche quelli a linea di comando. In caso di collisione quelli a linea di comando vincono su quelli presenti nel file.
pdf_file
/pdf_file=C:\temp\mydocument.pdf
Questa opzione indica al software di generare un file pdf. Il percorso del file pdf da generare. Se viene passato vuoto (l'uguale deve essere inserito) utilizza il percorso e il nome del file .dwg
ctb_file
/ctb_file=monochrome.ctb
Il nome del file CTB da usare per spessori e colori. Il file deve essere presente nella cartella dei CTB che usa il visualizzatore.
paper_width
/paper_width=297
Dimensione della carta (Larghezza) in mm
paper_height
/paper_height=210
Dimensione della carta (Altezza) in mm
paper_left_margin / paper_right_margin / paper_top_margin / paper_bottom_margin
/paper_left_margin=10
Dimensione del margine da aggiungere sul lato indicato (in mm)
pdf_title
pdf_author
pdf_subject
pdf_keywords
pdf_creator
pdf_producer
/pdf_title="My PDF document"
Vari attributi del file PDF.
pdf_dpi_geom
/pdf_dpi_geom=600
Risoluzione in DPI delle geometrie
pdf_dpi_hatch
/pdf_dpi_hatch=600
Risoluzione in DPI delle campiture
pdf_embedded_fonts
/pdf_embedded_fonts
/pdf_embedded_fonts=1
/pdf_embedded_fonts=true
Inclusione dei fonts nel documento PDF
pdf_shx_fonts_asgeom
/pdf_shx_fonts_asgeom=1
Converte i fonts SHX in geometria, altrimenti restano fonts PDF
pdf_ttf_fonts_asgeom
/pdf_ttf_fonts_asgeom=1
Converte i fonts TTF in geometria, altrimenti restano fonts PDF
pdf_simple_geom_optimization
/pdf_simple_geom_optimization=1
-
pdf_zoom_extension
/pdf_zoom_extension=1
Esegue uno zoom estensione
pdf_enable_layers
/pdf_enable_layers=1
Abilita l'esportazione dei layers nel file PDF.
pdf_export_off_layers
/pdf_export_off_layers=1
Abilita l'esportazione dei layers spenti nel file PDF.
pdf_use_hlr
/pdf_use_hlr=1
Abilita l'algoritmo di rimozione delle linee nascoste (Hidden Line Removal)
pdf_flate_compression
/pdf_flate_compression=1
Abilita l'algoritmo di compressione flate. Ottimizza le dimensioni del file PDF.
pdf_encoded
/pdf_encoded=1
-
pdf_export_hyperlinks
/pdf_export_hyperlinks=1
Mantiene i collegamenti ipertestuali nel file PDF.
pdf_layers_partnames
/pdf_layers_partnames=1
Usa i nomi delle parti nel nome del layer. I nomi verranno troncati a 255 caratteri e i caratteri non validi sostituiti con un '_' (tratto basso)
Esempio
QsDwgViewer.exe "C:\temp\62-001-1690-00-00.dwg" -pdf_file="C:\temp\pdf\62-001-1690-00-00.pdf"
/ctb_file="SIPACMEC_BN.ctb" /paper_width=210 /paper_height=297 /pdf_title="Titolo" /pdf_author=User
/pdf_subject="The subject" /pdf_keywords="DWG QS TEST" /pdf_creator="The user" /pdf_producer="QS Informatica"
/pdf_dpi_geom=300 /pdf_dpi_hatch=150 /paper_left_margin=10 /pdf_embedded_fonts
dwg_file
/dwg_file=dwgpath
Permette di salvare una copia del file caricato in formato dwg. Normalmente viene usato dopo aver apportato modifiche al file con una delle opzioni disponibili. Non è possibile passarlo vuoto.
dwg_version
/dwg_version=dwg2004
Permette di specificare il formato del file dwg da salvare. Il formato è definito dalla seguente tabella:
Format |
DWG version |
dwg2.5 |
DHL_1002 |
dwg2.6 |
DHL_1003 |
dwg9 |
DHL_1005 |
dwg10 |
DHL_1008 |
dwg12 |
DHL_1011 |
dwg13 |
DHL_1012 |
dwg14 |
DHL_1014 |
dwg2000, dwg2000i, dwg2002 |
DHL_1015 |
dwg2004, dwg2005, dwg2006 |
DHL_1800 |
dwg2007, dwg2008, dwg2009, |
DHL_1021 |
dwg2010, dwg2011, dwg2012 |
DHL_1024 |
dwg2013, dwg2014, dwg2015, dwg2016, dwg2017 |
DHL_1027 |
dxf_file
/dxf_file=dwgpath
Permette di salvare una copia del file caricato in formato dxf. Normalmente viene usato dopo aver apportato modifiche al file con una delle opzioni disponibili. Se passato vuoto viene creato un file dxf a lato del file caricato.
dxf_version
/dxf_version=dwgpath
Permette di specificare il formato del file dxf da salvare. Il formato è definito dalla seguente tabella:
Format |
DWG version |
dxf9 |
AC09 |
dxf10 |
AC10 |
dxf12 |
AC12 |
dxf13 |
AC13 |
dxf14 |
AC14 |
dxf15 |
AC15 |
dxf2004, dxf2005, dxf2006 |
AC18 |
dxf2007, dxf2008, dxf2009 |
AC21 |
dxf2010, dxf2011, dxf2012 |
AC24 |
dxf2013, dxf2014, dxf2015, dxf2016, dxf2017 |
AC27 |
purge
/purge
Consente di eliminare gli oggetti non utilizzati nel disegno caricato. Normalmente viene utilizzato con le opzioni dxf_file e dwg_file.
Opzioni generiche
close
/close
Forza la chiusura del programma al termine delle operazioni passate. Per alcune operazioni è già prevista la chiusura automatica.
timeout
/timeout=5
Forza la chiusura del programma al termine del timeout preimpostato. Il valore (intero) deve essere passato in secondi. Ritorna codice di errore 2.
check_edu
/check_edu
Verifica se si tratta di una versione educational. Se si crea un file .edu con lo stesso nome del file dwg passato.
API - lua
Il visualizzatore espone buona parte delle API lua normalmente definite in AutoCAD. Questo consente di eseguire script lua indefferentemente su AutoCAD, BricsCAD o nel visualizzatore.
API lua specifiche
DwgViewer
E' il visualizzatore esposto al lua. Questo espone varie funzionalità e l'accesso ad alcuni oggetti .NET per espandere la possibilita di programmazione.
DwgViewer.AddRibbon(ribbondata)
Consente di creare un elemento nell'interfaccia utente. Vedere l'apposito capitolo per maggiori dettagli. ribbondata è una tabella lua definita in questo modo:
- Page - Indica la pagina del ribbon
- Group - Indica il gruppo del ribbon
- Name - Indica il nome del comando. Deve essere univoco.
- Prompt - La scritta nel bottone
- Description - La descrizione dettagliata del comando.
- Icon - L'icona del bottone. Può essere una path ad un file immagine (es .png) oppure il nome di una risorsa mnx. Si veda l'apposito capitolo per dettagli sulle risorse.
- UseLargeIcon - mostra l'icona grande (32x32)
- Callback - la funzione lua da chiamare.
DwgViewer.AddPrtMenuCommand(menudata)
Consente di aggiungere un comando al menù contestuale delle parti. menudata è una tabella lua definita in questo modo:
- Menu - Consente di creare un sottomenu.
- Name - Indica il nome del comando. Deve essere univoco.
- Prompt - La scritta nella voce di menù.
- Description - La descrizione dettagliata del comando.
- Icon - L'icona della voce di menu. Può essere una path ad un file immagine (es .png) oppure il nome di una risorsa mnx. Si veda l'apposito capitolo per dettagli sulle risorse.
- Index - la posizione di inserimento nel menù.
- IndexMenu - la posizione del menu.
- Callback - la funzione lua da chiamare.
TODO: completare
API - Ribbons
Il visualizzatore consente di personalizzare i ribbons con comandi personalizzati definiti in lua.
Profili
Il visualizzatore consente di creare dei profili personalizzati.
I profili sono le impostazioni relative al layout del dialogo.
Definizione profilo
Verificare l'esistenza del file specificato in "ProfilePath" [rimosso da versione 23.0]
Aprendo il file "QsDwgViewer.exe.config", che si trova a fianco dell'eseguibile, bisogna assicurarsi che esista il file specificato nella sezione "ProfilePath".
Anche se il percorso può essere editato, sarebbe buona norma non farlo.
N.B. Dalla versione 23.0 il caricameto è demandato al percorso recuperato dalla chiave di registro.
Configurare il file di caricamento
Il file, specificato in "ProfilePath", deve essere strutturato in modo tale che ritorni una tabella LUA contenente i profili.
È possibile definire tale tabella in un file in rete, effettuare un "dofile" del suddetto file e ritornare la tabella LUA al chiamante.
Esempio
local tab = dofile(path)
return tab
Configurare la tabella con i profili
La tabella LUA deve essere configurata nel seguente modo:
Tabella = {
Profilo1 = {
Setting1 = value,
Setting2 = value,
Setting3 = value
},
Profilo2 = {
Setting1 = value,
Setting2 = value,
Setting3 = value
}
}
Profilo1, Profilo2 corrispondono ai nomi dei profili che si intende creare.
Setting1, Setting2 corrispondono alle impostazioni del layout, di seguito sono riportati i possibili settaggi:
Impostazioni |
Descrizioni |
Valori |
PartsStructure |
Indica se mostrare o meno l'albero parti. |
1 / nil |
PartsStructureFindPanel |
Indica se mostrare o meno il pannello di ricerca dell'albero parti. |
1 / nil |
Attributes |
Indica se mostrare o meno l'elenco degli attributi. |
1 / nil |
Console |
Indica se mostrare o meno la console. |
1 / nil |
Ribbon |
Indica se mostrare o meno i ribbon. |
1 / nil |
PageHeaderItemLinks |
Indica se mostrare o meno l'intestazione della ribbon contenente i vari pulsanti. |
1 / nil |
TopMost |
Indica se impostare o meno il dialogo sempre in primo piano. |
1 / nil |
UseDedSkin |
Indica se usare o meno lo skin del D&D+. |
1 / nil |
FastMode |
Indica se rendere più veloce l'apertura dei documenti, ignorando però le opzioni relative alle linee luminose. |
1 / nil |
ForceZoomExtensOnOpen |
Indica se effettuare uno zoom estensione all'apertura dei disegni. |
1 / nil |
RibbonMenu |
Tabella per selezionare i ribbon da visualizzare nel caso essi siano abilitati |
Tabella (vedi esempio) |
Struttura tabella RibbonMenu:
["RibbonMenu"] = {
["Home"] = {
["Show"] = 1,
["File"] = { ["Show"] = 1 },
["Output"] = { ["Show"] = nil },
["Tools"] = { ["Show"] = 1 },
}
...
}
Ciò che non viene elencato è considerato automaticamente spento -> ["Show"] = nil .