CADViewer, grazie al suo design flessibile e all’utilizzo di toolkit standard, può essere integrato con qualsiasi applicazione di gestione di database e utilizzato con una moltitudine di applicazioni personalizzate basate sui dati.

Questo Tutorial

Questo tutorial descrive l’estensione a SVG prodotta dal convertitore CAD AutoXchange 2020, che CADViewer utilizza per trasformazioni di unità, cambio di pagina, quotatura, ecc. durante la modellazione di un file DWG come SVG.

Questo tutorial contiene le seguenti sezioni:


Si prega di fare riferimento al nostro Download sezione, da scaricare AutoXchange 2020 e CADViewer per testare con i tuoi file.

1: cadviewer_worldUnits

AutoXchange rappresenta un numero di variabili Unit che AutoCAD DWG espone nel file cadviewer_worldUnits matrice nel <metadata> section:


<text id="cadviewer_worldUnits">
{ "globalOrigin": { "x": -7101.72, "y" : 15047.9}, 
						"units": "mm",
						"measurementType": "Metric",
						"lengthType": "Decimal",
						"lengthPrecision": 4,
						"blockUnitsFormat": "Undefined",
						"svgToWorldUnits": 5.79325,
						"worldToSVGUnits": 0.172615
}
</text>

I valori del sistema CAD di origine sono:

  • measurementType
  • lengthType
  • lengthPrecision
  • blockUnitsFormat

I valori calcolati da utilizzare nel file SVG corrente sono:

  • svgToWorldUnits
  • worldToSVGUnits

Le unit presunte nel disegno, come percepite da AX2020 al momento della conversione, lo sono:

  • units

NOTE: AutoCAD DWG does not contain a unit definition. Il presunto unit la definizione si basa sui valori di: measurementType, lengthType, lengthPrecision and blockUnitsFormat in combinazione. Il programmatore dell’applicazione pu formulare le proprie ipotesi in base a queste impostazioni. CADViewer include un comando Calibrate, dove gli utenti possono cambiare unit o ricalibrare se necessario.



2: cadviewer_drawingCoordinates

Per il modello o layout corrente, AutoXchange ha calcolato una trasformazione tra le estensioni DWG e SVG. Per il calcolo generale della distanza, vedere la sezione 8, calculate distances.

<text id="cadviewer_drawingCoordinates">
{ "DWG": 
    { "lowerLeft": { "x": -7101.72, "y" : 15047.9}, 
      "upperRight": { "x": 7118.24, "y" : 25000.7} 
    },
 "SVG": 
    { "lowerLeft": { "x": 22.7133, "y" : 1718}, 
      "upperRight": { "x": 2477.29, "y" : 0} 
    },
 "Drawing Height": 1718
}
</text>


3: cadviewer_ViewportClipping

Nel caso di un layout di Spazio Carta, in cui la finestra dello spazio modello viene ritagliata, il percorso della finestra viene esposto attraverso cadviewer_ViewportClipping in the <metadata> section:

<text id="cadviewer_ViewportClipping">
{ "paths":
   {
      [[20,15.5] , [230,15.5] , [230,35] , [326,35] , [326,292] , [20,292] ],
      [[326,292] , [326,35] , [415,35] , [415,292] ]
   }
}
</text>


4: cadviewer_multiPages

Poich SVG è solo un formato a pagina singola, AutoXchange 2020 computes a multipage navigation matrix, when the original drawing is processed for ModelSpace and all Layouts, see cadviewer_multiPages in the <metadata> section:

<text id="cadviewer_multiPages">
{ "multiPages": 3, 
                   "currentPage":1,
                   "pages" : [
                        { "fileName":"bru_52a_basic", "pageName":"ModelSpace"},
                        { "fileName":"bru_52a_basic__Layout01", "pageName":"Pr\u00E9sentation1"},
                        { "fileName":"bru_52a_basic__Layout02", "pageName":"Pr\u00E9sentation2"}
                   ]
}
</text>


5: Sezione root

Nella sezione root del <defs>, vengono esposte una serie di variabili di controllo, per i programmatori di applicazioni quelli importanti sono tmsNumberOfLayouts descritto di seguito nel Modelspace viewport classes e tmsNumberOfSVGViewports descritto di seguito nel SVG viewport classes.

<defs>
	<style id="cv_styles" type = "text/css">
	    <![CDATA[
	    svg{ background-color: white; opacity: 1.}
		:root {
          --tmsMinLineWidth: 0.6;
          --tmsHLWidth: 0.6;
          --tmsNumberOfLayouts: 3;
          --tmsNumberOfSVGViewports: 1;
          --tmsMinFixedLineWidth: 0.2;
          --tmsbPostFix: 0;
		}
	]]></style>
	</defs>


6: Classi vista Modelspace

Per ogni layout di PaperSpace, le finestre definite nel ModelSpace sono esposte come classi .sLO_xx. Queste definizioni di classe contengono il fattore di scala e le estensioni di ciascuna finestra dello spazio modello

<defs>
	<style id="cv_styles" type = "text/css">
	    <![CDATA[
		.sLO_0 {
		    scale: 1;
		    x: -62.7155;
		    y: -1.36865;
		    width: 545.431;
		    height: 299.737;
		}
		.sLO_1 {
		    scale: 0.0199062;
		    x: 20;
		    y: 15.5;
		    width: 306;
		    height: 276.5;
		}
		.sLO_2 {
		    scale: 0.0994258;
		    x: 326;
		    y: 35;
		    width: 89;
		    height: 257;
		}
	]]></style>
	</defs>


7: Classi vista SVG

Per ogni layout di PaperSpace, le finestre SVG che mappano una finestra di ModelSpace sono definite come classi .sSVGViewport__xx. Nella maggior parte dei casi ci sarà solo una SVGViewport in un dato layout, ma possono essercene più.

<defs>
	<style id="cv_styles" type = "text/css">
	    <![CDATA[
		.sSVGViewport_0 {
		    x: 0;
		    y: 0.161616;
		    width: 2500;
		    height: 1767.68;
		}
	]]></style>
	</defs>

NOTE: Se la finestra SVG è una maschera di ritaglio, il file .sSVGViewport__xx verrà soppresso e invece rappresentato dal cadviewer_ViewportClipping variabile nella sezione <metadata>.



8: Calcolare le distanze

Le distanze nel disegno vengono calcolate in modo diverso, a seconda che si trovino in ModelSpace o nei layout di PaperSpace

ModelSpace

Le distanze in ModelSpace vengono trasformate direttamente utilizzando il file variabile svgToWorldUnits.


  distanceDWG = distanceSVG * svgToWorldUnits;

Layout con Viewport rettangolare

Le distanze nelle finestre di layout devono essere ridimensionate in base al fattore di scala della finestra e al fattore di larghezza (o altezza) relativa tra la finestra SVG e la finestra DWG nelle coordinate dello spazio modello.


  distanceDWG = distanceSVG * sLO_1.width/(sSVGViewport_0.width*sLO_1.scale);

Layout with Clipped Viewport

Il programmatore dell’applicazione deve calcolare le estensioni del viewport SVG ritagliate come definito dal percorso in cadviewer_ViewportClipping, e quindi applicare la stessa trasformazione di cui sopra in Layout with Rectangular Viewport.



DIVERTITI - ed entra Contatti!