OrCAD X Tcl Scripting: accelera la progettazione con l’automazione

Argomenti chiave
- Gli script Tcl accorciano i tempi di progettazione automatizzando i processi manuali e ripetitivi.
- Tcl si interfaccia nativamente con il linguaggio di programmazione C con cui ha molte somiglianze a livello di sintassi.
- In Tcl gli oggetti vengono automaticamente convertiti in stringhe ma la conversione ad altri tipi di dato può essere volontariamente forzata.
- I comandi Tcl di OrCAD X permettono di interagire direttamente con il contenuto dello schema elettrico.
Tcl/Tk è un linguaggio di programmazione potente che estende le funzionalità di OrCAD X consentendo l’implementazione di funzionalità personalizzate. Gli script Tcl/Tk possono automatizzare i processi ripetitivi grazie all’impiego di procedure definite dall’utente. Come qualunque altro linguaggio, Tcl/Tk può risultare complicato, ma una volta acquisita dimestichezza, offre una velocità d’esecuzione ed una accuratezza senza pari.

L’opzione View > Command Window mostra oppure nasconde la riga di comando dal Canvas di disegno.
OrCAD X Tcl Scripting: sintassi generale
In OrCAD X Capture e in OrCAD X Presto è possibile scrivere ed eseguire script di automazione attraverso la riga di comando, riducendo notevolmente il tempo dedicato ad attività manuali e ripetitive. Inoltre, gli script Tcl/Tk sono altamente personalizzabili, e possono essere configurati in base agli specifici obiettivi di progetto o dell’organizzazione. I comandi Tcl/Tk di OrCAD X rientrano in una di tre categorie generali:
- Comandi Tcl/Tk standard (costrutti di controllo del flusso, File I/O ecc.).
- Comandi User Action per replicare le operazioni effettuate nel Canvas di disegno.
- Comandi Database per interagire direttamente con il contenuto dello schema elettrico.
Uno script Tcl/Tk consiste in una sequenza di comandi. I comandi hanno tre caratteristiche essenziali:
- Sono separati da spazi.
- Terminano quando si va a capo o con il simbolo “;” .
- Restituiscono un valore.
Se inseriti tra parentesi quadre, ad esempio comando1[comando2], i comandi si configurano come argomenti che utilizzano come valore il ritorno del comando stesso.
Altri spunti di sintassi generale:
- Il comando Set assegna il valore a una variabile (ad esempio, “set x 20”). Un “$” prima della variabile sostituisce questo valore durante una chiamata di funzione (ad esempio, “puts $x”).
- Il comando Puts stampa a video una stringa.
- Comandi e variabili si comportano come previsto se racchiusi tra virgolette (“ ”). Tuttavia, non si può dire lo stesso per le parentesi graffe ({ }). Sia le virgolette che le parentesi graffe possono essere usate per stampare stringhe a video.
- I costrutti di controllo del flusso if, for, while e switch consentono di gestire blocchi di codice di grandi dimensioni in modo più ordinato.
- Le liste (list) costituiscono strutture dati complesse. Dopo aver generato una lista, è possibile restituire l’elemento posizionato ad un determinato indice usando i comandi lindex e llength seguiti dal nome della lista, ad esempio: lindex list, llength list.
- Le procedure sono comandi definiti dall’utente. Una procedura è composta da tre argomenti (in ordine):
- Nome della procedura.
- Elenco dei parametri/argomenti.
- Corpo della procedura.
É possibile sovrascrivere i comandi standard di Tcl/Tk con la personalizzazione delle procedure. Si tratta di un’operazione delicata, per cui conviene implementarla con cautela.
Prototipi di funzione, ereditarietà e conversione di tipo (casting)
Gli utenti interessati ad un comando specifico possono consultare l’elenco completo dei comandi Database. E’ sufficiente digitare, all’interno della riga di comando, la stringa info commands *<command substring>*, dove command substring è la classe a cui appartiene il comando (ad esempio DboLib) oppure il nome della funzione (ad esempio _GetName).
Quando si digita info commands *_GetName* nella riga di comando, OrCAD X restituisce una lista di tutti i comandi che contengono la sottostringa _GetName
Se invece si digita il comando senza gli argomenti corretti, OrCAD X restituisce un messaggio di errore che aiuta ad individuare gli argomenti obbligatori. Ad esempio, per _GetName, la funzione accetta (nell’ordine) due argomenti: l’oggetto e il valore di ritorno.
Quando si scrivono script in Tcl/Tk, l’utente può richiamare i comandi Database in due diverse modalità.
Due modalità per chiamare lo stesso comando Database

Poiché le classi seguono l’ereditarietà (cioè, le funzioni di una sottoclasse includono tutte le funzioni delle sue superclassi), è utile conoscere la gerarchia generale delle classi del database:
- DbBasePrep
- DboUserPrep
- DboBaseObject
- DboAlias
- DboBusEntry
- DboDevice
- DboDisplayProp
- DboFlatNet
- DboGraphicInstance
- DboCustomItemInstance
- DboGraphicArcInst
- DboGraphicBezierInst
- DboGraphicBitMapInst
- DboGraphicBoxInst
- DboGraphicCommentTextInst
- DboGraphicEllipseInst
- DboGraphicLineInst
- DboGraphicOleEmbedInst
- DboGraphicPolygonInst
- DboGraphicPolylineInst
- DboGraphicSymbolVectorInst
- DboNetSymbolInstance
- DboBookMark
- DboERC
- DboGlobal
- DboOffPageConnector
- DboPart
- DboPartInst
- DboDrawnInst
- DboPlacedInst
- DboPlacedInst
- DboTitleBlock
- DboLib
- DboDesign
- DboLibObject
- DboCell
- DboGraphicObject
- DboSymbol
- DboLibPart
- DboTitleBlockSymbol
- DboPackage
- DboView
- DboSchematic
- DboNet
- DboNetBust
- DboNetScalar
- DboOccurrence
- DboInstOccurrence
- DboNetOccurrence
- DboOffPageConnectorOccurrence
- DboPortOccurrence
- DboPortBusMemberOccurence
- DboTitleBlockOccurrence
- DboPage
- DboPortInst
- DboPortInstBus
- DboPortInstScalar
- DboPortInstBusMember
- DboSymbolPin
- DboSymbolPinBus
- DboSymbolPinScalar
- DboVector
- DboArc
- DboBezier
- DboBitMap
- DboBox
- DboCommentText
- DboEllipse
- DboFill
- DboLine
- DboOleEmbed
- DboPolygon
- DboPolyline
- DboSymbolVector
- DboWire
- DboWireBus
- DboWireScalar
Tuttavia, info commands mostra solo i comandi relativi alla classe interrogata. Ad esempio, la chiamata info commands DboLib_* fornisce solo i comandi espliciti di quel tipo di classe del database, ma poiché DboLib eredita da DboBaseObject, DboLib ha accesso anche a tutti i comandi forniti da info commands DboBaseObject_*.
Infine, è possibile convertire i tipi di dati per manipolarli al di fuori di OrCAD X (nota che, per impostazione predefinita, la maggior parte dei comandi Database accetta come parametri stringhe CString). I comandi Helper gestiscono la conversione dei tipi di dati:
- DboTclHelper_sMakeLOGFONT
- DboTclHelper_sMakeBitMap
- DboTclHelper_sMakeBitMapData
- DboTclHelper_sMakeDboValue
- DboTclHelper_sMakeStdVector
- DboTclHelper_sMakeInt
- DboTclHelper_sMakeStdStr
- DboTclHelper_sMakeCPoint
- DboTclHelper_sMakeCString
- DboTclHelper_sMakeDboValueType
- DboTclHelper_sMakeCRect
- DboTclHelper_sGetRectTopLeft
- DboTclHelper_sGetCPointX
- DboTclHelper_sGetCPointY
- DboTclHelper_sGetVectorSize
- DboTclHelper_sGetConstantCharPtr
- DboTclHelper_sGetRectBottomRight
- DboTclHelper_sGetConstCharPtrFromVector
Automatizza la progettazione con OrCAD X Presto
Gli script Tcl di OrCAD X sono uno strumento potente che ti consente di automatizzare i processi ECAD, in modo da poter concentrare il focus progettuale altrove. Questi script estendono la già potente piattaforma OrCAD X, garantendo maggiori possibilità di personalizzazione. Infine, gli script Tcl/Tk facilitano la comunicazione dei programmi con il C nativo.
Cosa aspetti? Inizia subito ad utilizzare gli script di automazione nell’editor OrCAD X Presto: lo puoi provare gratuitamente per 1 mese!