Vai al contenuto

#01 – Evidenzia le quote modificate all’apertura di un disegno

Descrizione :

Normalmente all’apertura di un disegno le quote vengono aggiornate automaticamente e non è evidente quali sono le quote che sono cambiate, con questo plugin all’apertura del disegno le quote aggiornate vengono evidenziate in giallo con a lato il valore della quota originaria.

Come funziona :

Il plugin richiede il file di disegno *.idw o *.dwg da aprire, rimanda gli aggiornamenti delle quote durante l’apertura, crea una lista con i valori di tutte le quote prima dell’aggiornamento, aggiorna le quote inserendo un testo suffisso alla dimensione modificata con la dimensione originaria.

Codice :

'June 2023 edited by Paolo Campagna and Roberto Franchi (CAD-PLUGIN-LAB) -> https://cad-plugin-lab.com
'iLogic code by Jelte de Jong - > https://clintbrown.co.uk/tag/Jelte
'Originally Published at https://clintbrown.co.uk/show-changed-dimensions-when-opening-drawings
'https://www.linkedin.com/in/jeltedejong/
'Get file name
Dim oDLG As Inventor.FileDialog = Nothing
ThisApplication.CreateFileDialog(oDLG)
oDLG.Filter = "Inventor Files (*.idw;*.dwg)|*.idw;*.dwg"
oDLG.OptionsEnabled = False
oDLG.ShowOpen()
' Defer updates while opening file
Dim oNVM As NameValueMap = ThisApplication.TransientObjects.CreateNameValueMap
oNVM.Add("DeferUpdates", True)
ThisApplication.SilentOperation = True
Dim doc As DrawingDocument = 
	ThisApplication.Documents.OpenWithOptions(oDLG.FileName, oNVM)
ThisApplication.SilentOperation = False
' create a dictionary with the original values
Dim dims As Dictionary(Of DrawingDimension, String) = 
	New Dictionary(Of DrawingDimension, String)()
For Each drawingDim As DrawingDimension In doc.ActiveSheet.DrawingDimensions
    dims.Add(drawingDim, drawingDim.Text.Text)
Next
' update the drawing
ThisApplication.CommandManager.ControlDefinitions.Item("AppZoomallCmd").Execute
MsgBox("Going to update drawing now.")
doc.DrawingSettings.DeferUpdates = False
' Check all dimension and add text if it changed
For Each item As KeyValuePair(Of DrawingDimension, String) In dims
	Try
		Dim drawingDim = item.Key
	    If (drawingDim.Text.Text.Equals(item.Value) = False) Then
	        Dim text = drawingDim.Text.FormattedText
	        drawingDim.Text.FormattedText = String.Format(
		"{0} <StyleOverride>(Original: {1})</StyleOverride>",
	            text, item.Value)
	    End If
	Catch ex As Exception
	End Try
Next

Come utilizzarlo :

Per rendere operativo questo plugin puoi copiare ed incollare il testo del codice all’interno di una regola iLogic, creare una macro VBA, oppure utilizzarlo per creare altri plugin in VB.NET.

Puoi scaricare direttamente il file di testo:
#001-Evidenzia le quote modificate all’apertura di un disegno

Per maggiori informazioni sull’utilizzo del codice riferirsi alla pagina dedicata.

Origine :

https://clintbrown.co.uk/2020/05/26/show-changed-dimensions-when-opening-drawings/

IT