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 .