I am the author of CCSslotMetal.il - it already has an option for the overall path width, and the arrangement is that this is divided into three sections across the total path width such that the slot width is equal to the surrounding path segment widths. Likewise the slot length is controlled by the length of the subrectangles which are hard-coded such that their length is twice their width - the slots are just the absence of these subrectangles. This code was mainly written as an example to demonstrate that a call to rodCreatePath can be made interactively, initiated from an enterPath() enter function, and that this can be further controlled or influenced using the commands' Options form. It should not be too hard for someone to see how to update the ?offsetSubPath and ?subRect arguments so that parameters can be used for the slot width and length.
The age of the code is not really relevant, unless it stops working or is superseded by something else. To my knowledge there are not any publicly available updates, but I'm sure that plenty folks have downloaded and then modified the code for their specific requirements. What would you like to see instead or additionally?
In reply to skillUser:
thanks for your reply and thank you for the script. I agree about the age of the code. I was hoping there might have been some update to it based on its age and the ubiquitousness of the application.
I would like to enhance the form input to accept user defined bus widths without limitation, and to define the slots as holes with user-defined widths, lengths, and spacing (these inputs can be used to create the subrectangles alternatively). In addition, the number of slots per width of bus would be a function of the bus width. In effect, the slotted metal bus will maximize metal area while meeting the required slotting rules to serve slotting purposes. Currently the slots are oversized as defined. Ideally, it would also remain a path object with these parameters form-customizeable.....which sounds a lot like a pcell. So, short of making a slotted metal pcell, I'm looking for an enhanced script with more flexibility vis-a-vis form input fields for its variables.
In reply to jaleco:
IC61 has Create->Slot - so maybe this is redundant anyway. Did you try this? (Hit F3 to bring up the options form - and the Help button will take you to the relevant documentation).
In reply to Andrew Beckett:
Unfortunately I am using v5.1.41...which is where the age of the CCSslotMetal.il script comes into play. For those of us using an older version of Virtuoso, I hoped there had been an update to that code that was version compatible. Thanks though, and sorry I did not mention the software version before.
For anyone else modifying the CCSslotMetal.il code, and wanting to debug easily as you modify the code, the first function tests the form's existence and brings up the form as it was last executed or modified by the user - NOT using the entry layer, or the default width value or default snap value.
Simply comment out the first "if" statement, leaving only the line :
form = CCScreateSlotMetalForm()
....prior to :
This will force the form to be created new with each call and you can immediately see your modifications to the form.
Does anyone know how to compare a float value to zero?
I have completed an updated slotted metal form script with user-defined values for slot dimensions but am having some trouble testing path widths to be on grid because a test to see of they are on grid randomly fails a float test comparison to zero and snaps path widths unnecessarily.
I have completed what appears to be a working update to the CCSslotmetal.il script, now accepting user input on the form for slot dimensions. Hopefully this may come in handy for other people having to route technology-specific slotted metal in v5.1.41.
Attaching it here as SlottedMetal.il
I am a novice programmer...and don't really know SKILL coding...so any feedback about how to make this code more efficient would be welcome.