<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.cadence.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Allegro X Scripting - TCL - Recent Threads</title><link>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl</link><description>Allegro X Scripting - TCL</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>How to successfully place a custom TitleBlock in the TCL instructions for creating an OPJ</title><link>https://community.cadence.com/thread/66051?ContentTypeID=0</link><pubDate>Tue, 09 Jun 2026 03:00:04 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:017c8c09-f61e-473c-8f23-0208db410e81</guid><dc:creator>FK202606088435</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/66051?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/66051/how-to-successfully-place-a-custom-titleblock-in-the-tcl-instructions-for-creating-an-opj/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, Sir:&lt;/p&gt;
&lt;p&gt;In the OrCAD Capture CIS 23.1,&lt;/p&gt;
&lt;p&gt;In the DSN page of the manually created project, I can successfully place my custom TitleBlock using the same TCL commands.&lt;/p&gt;
&lt;p&gt;However, it does not work in the OPJ I currently create using the following TCL commands,&lt;/p&gt;
&lt;p&gt;and there are no error messages. After the entire circuit diagram is drawn, the lower right corner is still blank.&lt;/p&gt;
&lt;p&gt;Thank you for your careful and patient guidance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Add a tcl command I created and registered to the toolbar and also assign an icon to it programmatically for capture 17.2 version</title><link>https://community.cadence.com/thread/65997?ContentTypeID=0</link><pubDate>Sun, 10 May 2026 13:27:23 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:322ae390-a37e-47b5-9142-f85db609f40b</guid><dc:creator>RS202512234819</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65997?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65997/add-a-tcl-command-i-created-and-registered-to-the-toolbar-and-also-assign-an-icon-to-it-programmatically-for-capture-17-2-version/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,Sir:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; I had create a tcl command, and I want to register to the toolbar&amp;nbsp; and assign an icon to it for capture 17.2,&lt;/p&gt;
&lt;p&gt;I had try the &amp;quot;new&amp;quot; button from menu &amp;quot;Tool&amp;quot;---&amp;gt;&amp;quot;Customize&amp;quot;----&amp;gt;&amp;quot;Toolbars&amp;quot;,but it can&amp;#39;t bind the tcl command,&lt;/p&gt;
&lt;p&gt;please kindly help to give a method to&amp;nbsp;achieve it?&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TCL to set active page in the treeview using SelectPMItem</title><link>https://community.cadence.com/thread/65984?ContentTypeID=0</link><pubDate>Mon, 04 May 2026 08:51:01 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:101ef490-6a09-49b9-812b-61d3400b5ec6</guid><dc:creator>fSeyer</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65984?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65984/tcl-to-set-active-page-in-the-treeview-using-selectpmitem/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Could anyone suggest an alternative to &lt;code data-start="371" data-end="385"&gt;SelectPMItem&lt;/code&gt;?&lt;br data-start="386" data-end="389" /&gt; I&amp;rsquo;m using it to set the active page in a tree view, but it ignores page names that contain &amp;quot;0&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Use TCL to get all "page name" when no title block</title><link>https://community.cadence.com/thread/65958?ContentTypeID=0</link><pubDate>Tue, 28 Apr 2026 01:13:28 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:30239092-09bf-4720-927a-12d83c66d343</guid><dc:creator>RS202512234819</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65958?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65958/use-tcl-to-get-all-page-name-when-no-title-block/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, Sir:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;at now, my design had no titleblock on the all pages,&lt;/p&gt;
&lt;p&gt;and I want to use TCL to put titleblock an the all pages,&lt;/p&gt;
&lt;p&gt;but I can&amp;#39;t get the &amp;quot;page name&amp;quot;&amp;nbsp; value at the time.&lt;/p&gt;
&lt;p&gt;How can I do to get the all &amp;quot;page name&amp;quot;?&lt;/p&gt;
&lt;p&gt;use want method to do it?&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Difference between SKILL and RAVEL</title><link>https://community.cadence.com/thread/65858?ContentTypeID=0</link><pubDate>Fri, 20 Mar 2026 20:49:52 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:67f4f6b4-568c-408c-b190-d758652e0412</guid><dc:creator>JuanCR</dc:creator><slash:comments>0</slash:comments><comments>https://community.cadence.com/thread/65858?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65858/difference-between-skill-and-ravel/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;SKILL provides a safe, high-level programming environment that automatically handles many traditional system programming operations, such as memory management. SKILL programs can be immediately executed in the Cadence environment.&amp;nbsp;&lt;span&gt;The SKILL programming language lets you customize and extend your design environment.&amp;nbsp;&lt;/span&gt;SKILL is ideal for rapid prototyping.&lt;/p&gt;
&lt;p&gt;RAVEL&lt;span&gt;&amp;nbsp;is a language to implement design rules for PCB and Packaging&amp;nbsp;tools. It builds on a relational view of the design data.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The below table highlights the difference between SKILL and RAVEL:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:328px;max-width:506px;" height="328" src="https://community.cadence.com/resized-image/__size/1012x656/__key/communityserver-discussions-components-files/138/pastedimage1774039625812v9.png" width="506" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Following image shows the&amp;nbsp;code of SKILL and RAVEL.&lt;/p&gt;
&lt;p&gt;The article,&amp;nbsp;&lt;a href="https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000006AhKSUA0&amp;amp;pageName=ArticleContent" rel="noopener noreferrer" target="_blank"&gt;Syntax highlighting for SKILL and RAVEL in Notepad++ text editor&lt;/a&gt;, explains in more detail.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:237px;max-width:607px;" height="237" src="https://community.cadence.com/resized-image/__size/1214x474/__key/communityserver-discussions-components-files/138/pastedimage1774039728543v10.png" width="607" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DFM&amp;nbsp;Ravel Rules GUI&lt;/strong&gt;&lt;span&gt;&amp;nbsp;for PCB is shown below.&amp;nbsp;&lt;/span&gt;&lt;a href="https://community.cadence.com/cadence_blogs_8/b/pcb/posts/how-to-run-a-ravel-rule-from-the-gui" rel="noopener noreferrer" target="_blank"&gt;&lt;strong&gt;BoardSurfers: Training Insights: How to Run a RAVEL Rule from the GUI&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;span&gt;explains in detail how to run rules from&amp;nbsp;&lt;/span&gt;&lt;span&gt;the GUI&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:340px;max-width:530px;" height="340" src="https://community.cadence.com/resized-image/__size/1060x680/__key/communityserver-discussions-components-files/138/pastedimage1774039758969v11.png" width="530" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Audit OLB's in directory</title><link>https://community.cadence.com/thread/65812?ContentTypeID=0</link><pubDate>Fri, 06 Mar 2026 12:47:56 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:65fabc88-4015-4664-be45-7625d9b4a1f6</guid><dc:creator>Mhawley1</dc:creator><slash:comments>5</slash:comments><comments>https://community.cadence.com/thread/65812?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65812/audit-olb-s-in-directory/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Can anybody give me a boiler plate on batch opening OLB&amp;#39;s .&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I want to be able to open an OLB , read the names of all the symbols within and then close .&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How do I parse all the graphical entities of a schematic symbol from an OLB</title><link>https://community.cadence.com/thread/65760?ContentTypeID=0</link><pubDate>Fri, 20 Feb 2026 08:29:27 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:2c565b38-b75a-4496-87ba-f62ad4d1ec7b</guid><dc:creator>andakConsultingLtd</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65760?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65760/how-do-i-parse-all-the-graphical-entities-of-a-schematic-symbol-from-an-olb/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi everyone,&lt;/p&gt;
&lt;p&gt;I want to parse an OLB file and all its content and export the graphical details for each entity. I would be happy to get the code for the simplest scenario (e.g. olb is open in Capture, schematic symbol with a single gate) as I can extend from there but I don&amp;#39;t know how to initiate the iteration inside the OLB.&lt;/p&gt;
&lt;p&gt;It would be great if you can provide a code example.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>New Part from XML</title><link>https://community.cadence.com/thread/65758?ContentTypeID=0</link><pubDate>Fri, 20 Feb 2026 07:09:43 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:f2ff5186-413e-4229-8a54-48241d2d6022</guid><dc:creator>YL202501275314</dc:creator><slash:comments>5</slash:comments><comments>https://community.cadence.com/thread/65758?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65758/new-part-from-xml/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;This is Reference Code from Cadence Example.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And I would like to add PCB Footprint Information&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;How can I Find The information about xml ID ?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;puts $lXmlFile {&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;&amp;lt;DialogControls&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;EDIT&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;16009&amp;quot;&amp;gt;}&lt;br /&gt;puts $lXmlFile &amp;quot;&amp;lt;Value&amp;gt;&amp;lt;!\[CDATA\[$lPartName\]\]&amp;gt;&amp;lt;/Value&amp;gt;&amp;quot;&lt;br /&gt;puts $lXmlFile {&amp;lt;/Control&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;EDIT&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;16006&amp;quot;&amp;gt;}&lt;br /&gt;puts $lXmlFile &amp;quot;&amp;lt;Value&amp;gt;&amp;lt;!\[CDATA\[$lSecLength\]\]&amp;gt;&amp;lt;/Value&amp;gt;&amp;quot;&lt;br /&gt;puts $lXmlFile {&amp;lt;/Control&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;EDIT&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;16012&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Value&amp;gt;&amp;lt;![CDATA[U]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&amp;lt;/Control&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;GROUPBOX&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;-1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Value&amp;gt;&amp;lt;![CDATA[Part Numbering]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&amp;lt;/Control&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;AUTORADIO_BUTTON&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;16002&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Value&amp;gt;&amp;lt;![CDATA[0]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&amp;lt;Text&amp;gt;&amp;lt;![CDATA[N&amp;amp;umeric]]&amp;gt;&amp;lt;/Text&amp;gt;&lt;br /&gt;&amp;lt;/Control&amp;gt;&lt;br /&gt;&amp;lt;Control Type=&amp;quot;AUTORADIO_BUTTON&amp;quot; Enable=&amp;quot;TRUE&amp;quot; Visible=&amp;quot;TRUE&amp;quot; Id=&amp;quot;16003&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Value&amp;gt;&amp;lt;![CDATA[1]]&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;&amp;lt;Text&amp;gt;&amp;lt;![CDATA[A&amp;amp;lphabetic]]&amp;gt;&amp;lt;/Text&amp;gt;&lt;br /&gt;&amp;lt;/Control&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;and I would like to add some Line in symbol&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TCL script for creating library, drawing rectangle and placing pins, and saving .OLB</title><link>https://community.cadence.com/thread/65749?ContentTypeID=0</link><pubDate>Mon, 16 Feb 2026 21:57:50 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:0e3df56f-eaa3-4c2f-85ae-41afbbe0711c</guid><dc:creator>AT202409242847</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65749?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65749/tcl-script-for-creating-library-drawing-rectangle-and-placing-pins-and-saving-olb/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Currently I want an autoLoad TCL script that does the following&lt;/p&gt;
&lt;p&gt;1. creates a new library and part&lt;/p&gt;
&lt;p&gt;2. draws rectangle and some pins&lt;/p&gt;
&lt;p&gt;3. exports to .OLB&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried copying command journaling to get this:&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set libDir &amp;quot;C:/Users/.../AppData/Roaming/SPB_Data/cdssetup/workspace/libraries/symbols&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set libPath &amp;quot;$libDir/LIBRARY1.OLB&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set outputPath &amp;quot;C:/syscap/output/test.olb&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set partName &amp;quot;TEST&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Menu &amp;quot;File::New::Library&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SelectPMItem &amp;quot;$libPath&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;capLaunchNewSymbolEditor &amp;quot;$libPath&amp;quot; &amp;quot;$partName&amp;quot; 1 1&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;OrSymbolEditor::execute placeRectangle -0.4 0.7 0.4 -0.7&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;OrSymbolEditor::execute placeSymbolPin {OUT} {1} 2 Line {} -0.4 0.3 -0.5 0.3 true Scalar {{&amp;quot;UserPropAr&amp;quot;:[]}}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;OrSymbolEditor::execute placeSymbolPin {IN+} {3} 0 Line {} -0.4 0 -0.5 0 true Scalar {{&amp;quot;UserPropAr&amp;quot;:[]}}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;# Save library to output path&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;MenuCommand &amp;quot;29596&amp;quot; | FileDialog &amp;quot;OK&amp;quot; &amp;quot;$outputPath&amp;quot; 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;OrSymbolEditor::execute save 0&lt;/span&gt;&lt;br /&gt;```&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;However, it fails on startup autoLoad with the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;Menu&lt;/span&gt; command giving &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;MenuID not found&lt;/span&gt;. Which I assume is due to the script being run before the ui is initialized? Pasting the command into the command window manually works no issue...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried looking up how to do this using the Dbo commands, but only got as far as something like this:&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set lSession $::DboSession_s_pDboSession&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set lStatus [DboState]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;DboSession -this $lSession&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set newLib [$lSession CreateLib [DboTclHelper_sMakeCString "C:/syscap/output/test.OLB"] $lStatus]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;set lLibraryPath [DboTclHelper_sMakeCString C:/syscap/output/test.OLB]&lt;br /&gt;set lLib [DboSession_GetLibAndSchematics $lSession $lLibraryPath $lStatus]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;```&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If anybody could let me know how to run the script on startup without the menu issue or draft a TCL script for what I want to do, that would be greatly appreciated!&lt;/p&gt;
&lt;p&gt;Many thanks in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TCL script to set a property value in all titleblocks in a hierarchical design</title><link>https://community.cadence.com/thread/65710?ContentTypeID=0</link><pubDate>Wed, 04 Feb 2026 13:49:48 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:4dbd1284-3233-4482-bb3b-b1f8be634bde</guid><dc:creator>Willy</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65710?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65710/tcl-script-to-set-a-property-value-in-all-titleblocks-in-a-hierarchical-design/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I am attempting to write a TCL script that will set/update Title Block values in all Title Blocks in a schematic design.&lt;/p&gt;
&lt;p&gt;I have been working through the&amp;nbsp;OrCAD_Capture_TclTk_Extensions.pdf doc and googling. I can get the TCL script to find and run through all pages, but when I try to set or get property values I keep getting various errors depending on which examples/methods I am using.&lt;/p&gt;
&lt;p&gt;I removed the prompting for values and just hard coded in a propName of YEAR (which definitely exists in all sheets/pages) to propValue of 2020 to make the script shorter/simpler for getting help. I have left in commented out different things I have tried.&lt;/p&gt;
&lt;p&gt;Any help much appreciated, script below:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;# Define the property name and new value&lt;br /&gt;set propName &amp;quot;YEAR&amp;quot;&lt;br /&gt;set propValue &amp;quot;2020&amp;quot;&lt;/p&gt;
&lt;p&gt;set lDesign [GetActivePMDesign]&lt;br /&gt;set lStatus [DboState]&lt;br /&gt;set lNullObj NULL&lt;/p&gt;
&lt;p&gt;# 2. Iterate through Schematic Folders&lt;/p&gt;
&lt;p&gt;set lSchi_Name [DboTclHelper_sMakeCString]&lt;/p&gt;
&lt;p&gt;if {$lDesign != $lNullObj} {&lt;/p&gt;
&lt;p&gt;set lSchematicIter [$lDesign NewViewsIter $lStatus $::IterDefs_SCHEMATICS]&lt;br /&gt; #get the first schematic view&lt;br /&gt; set lView [$lSchematicIter NextView $lStatus]&lt;br /&gt; puts $lSchematicIter&lt;br /&gt; set lPage_Name [DboTclHelper_sMakeCString]&lt;br /&gt; puts $lPage_Name&lt;/p&gt;
&lt;p&gt;while { $lView != $lNullObj} {&lt;br /&gt; #dynamic cast from DboView to DboSchematic&lt;br /&gt; set lSchematic [DboViewToDboSchematic $lView]&lt;br /&gt; $lSchematic GetName $lSchi_Name&lt;br /&gt; set lPagesIter [$lSchematic NewPagesIter $lStatus]&lt;br /&gt; #get the first page&lt;br /&gt; set lPage [$lPagesIter NextPage $lStatus]&lt;/p&gt;
&lt;p&gt;puts [DboTclHelper_sGetConstCharPtr $lSchi_Name]&lt;/p&gt;
&lt;p&gt;while {$lPage!=$lNullObj} {&lt;br /&gt; #placeholder: do your processing on $lPage&lt;/p&gt;
&lt;p&gt;$lPage GetName $lPage_Name&lt;br /&gt; puts [DboTclHelper_sGetConstCharPtr $lPage_Name]&lt;/p&gt;
&lt;p&gt;# set lTitleBlocksIter [$lPage NewTitleBlocksIter $lStatus]&lt;br /&gt; # set lTitle [$lTitleBlocksIter NextTitleBlock $lStatus]&lt;br /&gt; #while {$lTitle!=$lNullObj} {&lt;br /&gt; #placeholder: do your processing on $lTitle&lt;br /&gt; #puts $lTitle&lt;br /&gt; &lt;br /&gt; # set lStatus [$lTitle SetEffectivePropStringValue "YEAR" "1999"]&lt;br /&gt; #set lStatus [$lTitle GetEffectivePropStringValue "YEAR" $propValue]&lt;br /&gt; # $lTitle GetEffectivePropStringValue $propName propValue&lt;br /&gt; &lt;br /&gt; #puts &amp;quot;Property Value: $propValue&amp;quot;&lt;br /&gt; &lt;br /&gt; #get the next title block&lt;br /&gt; #set lTitle [$lTitleBlocksIter NextTitleBlock $lStatus]&lt;br /&gt; #}&lt;br /&gt; #delete_DboPageTitleBlocksIter $lTitleBlocksIter&lt;br /&gt; set pValue &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;# 3. Get the value of a specific property (e.g., &amp;quot;Title&amp;quot;)&lt;br /&gt; # GetEffectivePropStringValue takes (PropertyName, VariableToStoreValue)&lt;br /&gt; set lStatus [$lPage GetEffectivePropStringValue "Title" pValue]&lt;/p&gt;
&lt;p&gt;# 4. Check status and print result&lt;br /&gt; if {$lStatus == 1} {&lt;br /&gt; puts &amp;quot;Title Block Value: $pValue&amp;quot;&lt;br /&gt; } else {&lt;br /&gt; puts &amp;quot;Property &amp;#39;Title&amp;#39; not found.&amp;quot;&lt;br /&gt; }&lt;br /&gt; set lPage [$lPagesIter NextPage $lStatus]&lt;br /&gt; }&lt;br /&gt; #placeholder: do your processing on $lSchematic&lt;br /&gt; #puts $lSchematic&lt;br /&gt; #get the next schematic view&lt;br /&gt; set lView [$lSchematicIter NextView $lStatus]&lt;br /&gt; }&lt;br /&gt; delete_DboLibViewsIter $lSchematicIter&lt;br /&gt; delete_DboSchematicPagesIter $lPagesIter&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Fail to open DSN with TCL due to both "dot" and "space" in the file name</title><link>https://community.cadence.com/thread/65661?ContentTypeID=0</link><pubDate>Wed, 21 Jan 2026 06:33:12 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:dca678ac-8278-438d-85f1-004c8b627151</guid><dc:creator>Gelzone</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/65661?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65661/fail-to-open-dsn-with-tcl-due-to-both-dot-and-space-in-the-file-name/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I try both&amp;nbsp;&lt;code&gt;Menu &amp;quot;File::Open::Design&amp;quot;&lt;/code&gt; and&amp;nbsp;&lt;code&gt;MenuCommand &amp;quot;57601&amp;quot;&lt;/code&gt; to open my file with tcl but fail.&lt;/p&gt;
&lt;p&gt;The file name is &amp;quot;&amp;lt;project folder&amp;gt;/test_M.2 test1.DSN&amp;quot; and the error message shows something like &amp;quot;&amp;lt;project folder&amp;gt;/test_M.2 not found&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And I try to remove the &amp;quot;dot&amp;quot; (keep the &amp;quot;space&amp;quot;), the command can open the DSN file successfully.&lt;br /&gt;Another experiment that keeping &amp;quot;dot&amp;quot; but remove &amp;quot;space&amp;quot; also works well.&lt;/p&gt;
&lt;p&gt;So I think this &lt;em&gt;file not found&lt;/em&gt; issue will occur when both &amp;quot;&lt;strong&gt;dot&lt;/strong&gt;&amp;quot; and &amp;quot;&lt;strong&gt;space&lt;/strong&gt;&amp;quot; exist in the file name.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Can I catch any information while "Create Netlist" fail with tcl?</title><link>https://community.cadence.com/thread/65623?ContentTypeID=0</link><pubDate>Fri, 09 Jan 2026 02:06:25 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:634693c0-ef7f-491f-94a4-3d556f66c0b0</guid><dc:creator>Gelzone</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65623?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65623/can-i-catch-any-information-while-create-netlist-fail-with-tcl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have used user-action tcl code (Menu &amp;quot;Tools::Create Netlist&amp;quot;) to create netlist from DSN file in OrCAD.&lt;br /&gt;Sometimes the process will fail due to the DSN content or config setting, and there will be a &lt;strong&gt;error message pop up&lt;/strong&gt;&amp;nbsp;and lock the procedure.&lt;/p&gt;
&lt;p&gt;I wonder if there is any way to catch the error/exception while creating netlist and that can make me handle it well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to convert DSN to PDF with tcl?</title><link>https://community.cadence.com/thread/65619?ContentTypeID=0</link><pubDate>Tue, 06 Jan 2026 02:07:58 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:3e357897-f949-470e-bdc5-fdbbc29289bc</guid><dc:creator>Gelzone</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65619?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65619/how-to-convert-dsn-to-pdf-with-tcl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;In the OrCAD Capture CIS 23.1, I found there are 2 features that can make the DSN file to PDF format:&lt;/p&gt;
&lt;p&gt;1. File &amp;gt; Print&lt;/p&gt;
&lt;p&gt;2. File &amp;gt; Export &amp;gt; PDF&lt;/p&gt;
&lt;p&gt;Both 2 meet my requirement, and I want to know if I can &lt;strong&gt;use tcl&lt;/strong&gt; to make the process automatic, including setup the config like printer, orientation, printing mode, output path...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How can parts be placed programmatically and then modified afterwards?</title><link>https://community.cadence.com/thread/65616?ContentTypeID=0</link><pubDate>Mon, 05 Jan 2026 11:36:35 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:21a4c53d-5f70-4329-8b76-c12f6b9f14fb</guid><dc:creator>RT202503126350</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65616?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65616/how-can-parts-be-placed-programmatically-and-then-modified-afterwards/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Is it possible to place a part at an x,y coordinate and then get a reference to that part so it can be subsequently modified (set refdes, etc, for example using SetEffectivePropStringValue)?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;There is the&lt;span&gt;&amp;nbsp;&lt;/span&gt;Capture Command &amp;quot;PlacePart&amp;quot;&lt;/p&gt;
&lt;p&gt;PlacePart(x, y, libName, pkgName, device, boolvalue6)&lt;/p&gt;
&lt;p&gt;But it doesn&amp;#39;t return a reference to the part, so I cant further operate on the part programmatically. Is there a database command alternative that returns a reference (I thought maybe in DboSchematic or DboPlacedInst, but I couldnt find anything that seemed right.)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have seen a solution generated by AI, which places a part using &amp;quot;Place Part&amp;quot;, and then iterates through all parts in the design, and compares their x,y coordinates with the values used in the &amp;quot;PlacePart&amp;quot; call, and returns the best match, but that seems like a ridiculous effort, especially if I want to place hundreds of parts, and the existing schematic also has many hundreds of existing parts that all have to be looped through each time I place a new part.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Specifically, I have an existing design with ~100 test point symbols.&amp;nbsp; I want to find each of these test point symbols, and place a pogo pin symbol nearby whose refdes is based on the existing test point&amp;#39;s refdes (i.e. pogo P101 for the test point TP101).&amp;nbsp; I cant figure out a good way to do this without the above functionality.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Place database part in OrCAD with TCL?</title><link>https://community.cadence.com/thread/65496?ContentTypeID=0</link><pubDate>Tue, 25 Nov 2025 06:57:15 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:57284e4d-b015-4a6b-8ce5-c08acbbae5cd</guid><dc:creator>Gelzone</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65496?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65496/place-database-part-in-orcad-with-tcl/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I need to place a CIS part in a page automatically, and here is the steps:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The manual process:&lt;/p&gt;
&lt;p&gt;Open a page -&amp;gt;&lt;/p&gt;
&lt;p&gt;Right click &amp;quot;Place Database Part&amp;quot; -&amp;gt;&lt;/p&gt;
&lt;p&gt;At the CIS Explorer -&amp;gt;&lt;/p&gt;
&lt;p&gt;Use Query to find the target part (e.g. Property = Part Number &amp;amp; Compare = &amp;#39;=&amp;#39; &amp;amp; Value = PN)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And I have tried &amp;quot;&lt;code&gt;PlacePart&lt;/code&gt;&amp;quot; command but failed (e.g. PlacePart 1.5 1.5 &amp;lt;olb_full_path&amp;gt; &amp;quot;&amp;quot; &amp;quot;&amp;quot; FALSE), it showed&amp;nbsp;&lt;em&gt;Failed. Reason: Invalid Path or Invalid Argument(s).&lt;/em&gt; .&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Any way to "Global Modify" a property of a component with tcl in ASC?</title><link>https://community.cadence.com/thread/65386?ContentTypeID=0</link><pubDate>Tue, 28 Oct 2025 03:37:34 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6a6b6a97-a973-45d4-b2d8-fda4bc5d4d88</guid><dc:creator>Gelzone</dc:creator><slash:comments>4</slash:comments><comments>https://community.cadence.com/thread/65386?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65386/any-way-to-global-modify-a-property-of-a-component-with-tcl-in-asc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I wrote a procedure to modify a property (e.g. PART_NUMBER) of a component (type: INST) &lt;strong&gt;page by page&lt;/strong&gt;.&lt;br /&gt;I met a issue that if a component is associated with different pages, then it will raise violation error.&lt;/p&gt;
&lt;p&gt;Error message:&lt;/p&gt;
&lt;p&gt;PKG1104 Physical part &lt;em&gt;&amp;lt;PART_NAME&amp;gt;_&amp;lt;PACK_TYPE&amp;gt;-&amp;lt;VALUE&amp;gt;,&amp;lt;PART_NUMBER&amp;gt;&lt;/em&gt; cannot be assigned to package &lt;em&gt;&amp;lt;modified_component_refdes&amp;gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The package &lt;em&gt;&amp;lt;modified_component_refdes&amp;gt;&lt;/em&gt; is associated with part name&amp;nbsp;&lt;span&gt;&lt;em&gt;&amp;lt;PART_NAME&amp;gt;_&amp;lt;PACK_TYPE&amp;gt;-&amp;lt;VALUE&amp;gt;,&amp;lt;PART_NUMBER&amp;gt;-&amp;lt;JEDEC_TYPE&amp;gt;&lt;/em&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I guess the error occurs that I didn&amp;#39;t modify all components (w/ same refdes) simultaneously.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And here is my code snippet, maybe there is something I can improve:&lt;/p&gt;
&lt;p&gt;proc testMod {} {&lt;br /&gt; # Read refdes &amp;amp; cpn mapping&lt;br /&gt; puts &amp;quot;Processing mapping list...&amp;quot;&lt;br /&gt;set refPropsFile &amp;quot;C:/temp/refdes_props.csv&amp;quot;&lt;br /&gt; ReadFiles create readRefProps $refPropsFile &amp;quot;csv&amp;quot;&amp;nbsp; # This is just a class I created to read csv file&lt;br /&gt; set refPropsList [readRefProps readFile "\t"]&amp;nbsp; &amp;nbsp;# Return type is a list&lt;br /&gt; set mapping {}&lt;br /&gt; foreach eachMapping $refPropsList {&lt;br /&gt; # Extract the key and value from the sublist&lt;br /&gt; dict set mapping [lindex $eachMapping 0] [lrange $eachMapping 1 end]&lt;br /&gt; }&lt;br /&gt; readRefProps destroy&lt;br /&gt; &lt;br /&gt; puts &amp;quot;Updating Properties...&amp;quot;&lt;br /&gt; # Loading the schPageUtils pacakge.&lt;br /&gt; package require schPageUtils&lt;br /&gt; # Getting All Page Information.&lt;br /&gt; set pageListDict [schPageUtils::getDesignPagesAllInfo]&lt;br /&gt; # Reading Total Number of Pages&lt;br /&gt; set size [schPageUtils::getPagesInfoSize $pageListDict]&lt;br /&gt; &lt;br /&gt; set pageIter 1&lt;br /&gt; while {$pageIter &amp;lt;= $size} {&lt;br /&gt;&lt;br /&gt; set currTabSPath [cps::getSPathByTabIndex 1]&lt;br /&gt; puts $pageIter&lt;br /&gt; puts $currTabSPath&lt;br /&gt; set pageId [sch::dbGetActivePage]&lt;br /&gt; selectObject all&lt;br /&gt; set selItem [sch::dbGetSelectedItems $pageId]&lt;br /&gt; selectObject none&lt;br /&gt; #set hasModified 0&lt;br /&gt; foreach item $selItem {&lt;br /&gt; set itemType [sch::dbGetType $item]&lt;br /&gt; if {$itemType == $::sch::DBTInst} {&lt;br /&gt; set ItemSpath [sch::dbGetSPath $item]&lt;br /&gt; array set RefOrg [join [sch::dbxGetRefDesAndOriginFromInstSpath $ItemSpath]]&lt;br /&gt; set location $RefOrg(refdes)&lt;br /&gt; if {[dict exists $mapping $location]} {&lt;br /&gt; #set hasModified 1&lt;br /&gt; set props [dict get $mapping $location]&lt;br /&gt; set pn [lindex $props 0]&lt;br /&gt; set footprint [lindex $props 1]&lt;br /&gt; puts $location&lt;br /&gt; puts $pn&lt;br /&gt; puts $footprint&lt;br /&gt;&lt;br /&gt; sch::dbSelectObjectById $item $::sch::DBTrue&lt;br /&gt; modifyProp -name PART_NUMBER -value $pn&lt;br /&gt; modifyProp -name JEDEC_TYPE -value $footprint&lt;br /&gt; puts &amp;quot;Properties modified.&amp;quot;&lt;br /&gt; saveAll&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; sch::nextPage&lt;br /&gt; closeItem $currTabSPath&lt;br /&gt; incr pageIter&lt;br /&gt; }&lt;br /&gt; puts &amp;quot;Done&amp;quot;&lt;br /&gt; #saveAll&lt;br /&gt; #sch::closeProject&lt;br /&gt; #exit&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to modify a table after create it with tcl in ASC?</title><link>https://community.cadence.com/thread/65363?ContentTypeID=0</link><pubDate>Tue, 21 Oct 2025 09:15:55 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:d64a12bc-3a6d-40c3-8d9c-b139dd7173c9</guid><dc:creator>Gelzone</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65363?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65363/how-to-modify-a-table-after-create-it-with-tcl-in-asc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I need to use &lt;code&gt;addTable&lt;/code&gt; to create a table and write some information in my project but I had a hard time while writing data.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is my code snippet:&lt;/p&gt;
&lt;p&gt;set currNotePage [cps::getSPathByTabIndex 1]&lt;br /&gt; # Rename page.&lt;br /&gt; activateEdit $currNotePage SCH PAGE&lt;br /&gt; renameItem $currNotePage SCH PAGE &amp;quot;Design Notes&amp;quot;&lt;br /&gt; &lt;br /&gt; addTable -pg $currNotePage -row 15 -column 2 -pos [list 187 149]&lt;br /&gt; selectObject -occPath $currNotePage -type TABLE 187 149&lt;br /&gt;#cps::showMessageDialog &amp;quot;Interrupt&amp;quot; &amp;quot;Table selected&amp;quot; 0 &amp;quot;&amp;quot; &amp;quot;&amp;quot;&lt;br /&gt; #editTable true&lt;br /&gt; #tableColumnResize 1 2200&lt;br /&gt; tablePlainTextEdit 1 1 &amp;quot;Pages&amp;quot;&lt;br /&gt; tablePlainTextEdit 1 2 &amp;quot;Notes&amp;quot;&lt;/p&gt;
&lt;p&gt;The &amp;quot;Pages&amp;quot; and &amp;quot;Notes&amp;quot; didn&amp;#39;t write in the table, is there any other way to modify a table?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to always open the first schematic page when using "openProject" to open a .cpm file?</title><link>https://community.cadence.com/thread/65337?ContentTypeID=0</link><pubDate>Wed, 15 Oct 2025 05:47:46 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7fae7cd4-4862-442e-bcf8-302e8c685b89</guid><dc:creator>Gelzone</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65337?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65337/how-to-always-open-the-first-schematic-page-when-using-openproject-to-open-a-cpm-file/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;As title, I found sometimes I opened a project with command &lt;code&gt;openProject&lt;/code&gt;, it would open the page I had modified last time.&lt;/p&gt;
&lt;p&gt;Most of the time it will open the first page (and that&amp;#39;s what I want), so I&amp;#39;d like to ask that is there any way to &amp;quot;reset&amp;quot; the status of the project or just force the&amp;nbsp;&lt;code&gt;openProject&lt;/code&gt; to open the first page only?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TCL Script System Capture get ALL Custom Var from Project and all from all Variants</title><link>https://community.cadence.com/thread/65315?ContentTypeID=0</link><pubDate>Wed, 08 Oct 2025 12:41:33 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:6262ab53-487e-4d7e-a140-06ce45bdca3a</guid><dc:creator>PIPE</dc:creator><slash:comments>10</slash:comments><comments>https://community.cadence.com/thread/65315?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65315/tcl-script-system-capture-get-all-custom-var-from-project-and-all-from-all-variants/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Sorry, i have search a lot but found nothing.&lt;/p&gt;
&lt;p&gt;I must make some folders and my idea is to export via tcl all this information and with a exernal tool i read out this info and generate for every variant and master a sperate folder to but the bom etc inside.&lt;/p&gt;
&lt;p&gt;Thanks for your help.&lt;/p&gt;
&lt;p&gt;Peter&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>lock net alias</title><link>https://community.cadence.com/thread/65252?ContentTypeID=0</link><pubDate>Thu, 25 Sep 2025 13:14:18 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:515c48e6-99ce-45a8-90e9-422897ee25f8</guid><dc:creator>tennywhy</dc:creator><slash:comments>3</slash:comments><comments>https://community.cadence.com/thread/65252?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65252/lock-net-alias/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;could anybody knows how to lock net alias on pages,&amp;nbsp;&lt;span&gt;Currently,&amp;nbsp;&lt;/span&gt;the orcad capture built-in lock command has no effect on net alias.&amp;nbsp; could i lock net alias through Tcl code?&amp;nbsp; help me please.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Replace a component using its CDS_LIBRARY_ID in system Capture</title><link>https://community.cadence.com/thread/65249?ContentTypeID=0</link><pubDate>Tue, 23 Sep 2025 18:08:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:5702cd22-a179-4a70-b69d-1ef8a34aa673</guid><dc:creator>YC202504163531</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65249?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65249/replace-a-component-using-its-cds_library_id-in-system-capture/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;[In System Capture 24.1]&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;m trying to write a script that replaces a component with its EMPTY counterpart and vice versa. The challenge is that, to successfully replace the component and keep it in sync with Pulse, I need the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CDS_LIBRARY_ID&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;property of the new component. I don&amp;rsquo;t know where to extract this property from. I can get the value from an already placed component, but that&amp;rsquo;s not useful for replacements.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m using this command:&lt;/p&gt;
&lt;div&gt;
&lt;pre class="language-tcl"&gt;&lt;code class="language-tcl"&gt;replace -part -by $componentLibs -preserveUserProp -preserveRefDes -propVisChanged -key [list {MATERIAL=EMPTY=1} {CDS_LIBRARY_ID=$cdsLibId=0} ] -i [list  {}] -useexistingtr  -cpath [list  "$cpath" ]
sch::leaveBatchMode&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;I tried to get the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CDS_LIBRARY_ID&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;property from the part table of the library, but it&amp;rsquo;s not there. I suspect this property is injected by the Part Information Manager. Does anyone know more about this, or how to automate the Part Information Manager window to retrieve or set this property?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Place Text font change</title><link>https://community.cadence.com/thread/65203?ContentTypeID=0</link><pubDate>Fri, 12 Sep 2025 13:06:59 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1161cb8e-0d79-4c5a-8bb6-1a69810d4640</guid><dc:creator>ZH202409115233</dc:creator><slash:comments>1</slash:comments><comments>https://community.cadence.com/thread/65203?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65203/place-text-font-change/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I want to use the TCL language to change the font property in the &amp;lsquo;Place Text dialog box&amp;rsquo; so that I can change the font property in this dialog box each time before triggering &amp;quot;Place::Text&amp;quot; with tcl, but I have no clue now.&lt;/p&gt;
&lt;p&gt;May I ask if there are any good ways?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/138/20250912210531.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Hide the window after using command "exportNetList" in ASC</title><link>https://community.cadence.com/thread/65181?ContentTypeID=0</link><pubDate>Tue, 09 Sep 2025 03:26:36 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:597ddb8b-d778-4ed2-bd0a-5f45eb8df871</guid><dc:creator>Gelzone</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65181?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65181/hide-the-window-after-using-command-exportnetlist-in-asc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I call &lt;code&gt;exportNetList&lt;/code&gt; not only by manually but also with tcl script, and it will show a message window to tell me where the netlist saved.&lt;br /&gt;Can I hide the window or any way to close the window automatically?&lt;/p&gt;
&lt;p&gt;BTW, can I change the output path for the netlist file? I found it always generated at &amp;lt;//output/sch_name/packaged/&amp;gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Menu "Place::Line"  Use a free style</title><link>https://community.cadence.com/thread/65177?ContentTypeID=0</link><pubDate>Mon, 08 Sep 2025 12:15:05 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:ad662c7e-0bb4-4007-95ca-062cfa0cca75</guid><dc:creator>ZH202409115233</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65177?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65177/menu-place-line-use-a-free-style/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;I want to use TCL to implement a Menu &amp;quot;Place::Line&amp;quot;. It should allow me to use my selected Line Style, Line Width, and Color to freely draw lines, rectangles, and annotations with the mouse. However, I currently have no idea how to implement this. Could you please suggest some good methods?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img style="max-height:480px;max-width:640px;" alt=" " src="https://community.cadence.com/resized-image/__size/1280x960/__key/communityserver-discussions-components-files/138/_5F00_20250908201435.png" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ERROR(ORCAP-1028) The Spice COM Wrapper error has occurred</title><link>https://community.cadence.com/thread/65162?ContentTypeID=0</link><pubDate>Fri, 05 Sep 2025 11:04:15 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:7f530d3d-8467-4510-8fb1-c0eb785d5d5b</guid><dc:creator>JO202509059437</dc:creator><slash:comments>2</slash:comments><comments>https://community.cadence.com/thread/65162?ContentTypeID=0</comments><wfw:commentRss>https://community.cadence.com/cadence_technology_forums/pcb-design/f/allegro-x-scripting-tcl/65162/error-orcap-1028-the-spice-com-wrapper-error-has-occurred/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;The above error occurred when running the following script command in OrCAD X Capture 24.1: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;Menu &amp;quot;File::Open::Project&amp;quot; | FileDialog&amp;nbsp; &amp;quot;OK&amp;quot; &amp;quot;orcad_file.opj&amp;quot; 1 | MessageBox &amp;quot;OK&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;It worked fine in the previous version of OrCAD 16.5.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;When I try to open a project &amp;quot;orcad_file.opj&amp;quot; via the OrCAD menu, the project opens successfully.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;The project contains only a schematic, it does not contain any PSpice model.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>