• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Asking SKILL Code for Virtouso

Stats

  • Locked Locked
  • Replies 20
  • Subscribers 145
  • Views 21549
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Asking SKILL Code for Virtouso

archive
archive over 19 years ago

I'm new to the forums and really need this code.

Here goes, I would like a SKILL code for Virtouso that goes something like this. It's a "Flip Command". The code should flip any object-->instance, path/wire, polygons, rectangle, contacts etc. either "vertical" or "horizontal". And added to that, if you select multiple objects, you could also flip them "vertical or horizontal". it's like a picture when you flip it or mirror it.

like, the objects are selected, "123" when FLIPPED all objects becomes "321".

Thanks. I hope someone could help me, i have other request for Virtouso but they don't have any forums.


Originally posted in cdnusers.org by wonderkamote
  • Cancel
  • archive
    archive over 19 years ago

    My first reaction is why don't you do this without skill in Virtuoso? Just select the
    things, type m to move, click the swap button from the form, and click the right
    mouse button to place them flipped.
    If you want to do this with skill, you not only need to swap each instance but also
    calculate a new origin for each instance.

    Greetings, William.


    I have an example how to rotate instances here. It is not difficult to modify this for
    flipping only. However, only the orientation is modified, not the origin.

    procedure( wrRotateInst( )

      let( ( wrOrient)

        foreach( instancepointer geGetSelectedSet( )
          unless( null( instancepointer->orient)
        wrOrient = instancepointer->orient
        case( wrOrient
          ( "R0"
            wrOrient = "R90"
          )
          ( "R90"
            wrOrient = "R180"
          )
          ( "R180"
            wrOrient = "R270"
          )
          ( "R270"
            wrOrient = "R0"
          )
          ( "MY"
            wrOrient = "MYR90"
          )
          ( "MYR90"
            wrOrient = "MX"
          )
          ( "MX"
            wrOrient = "MXR90"
          )
          ( "MXR90"
            wrOrient = "MY"
          )
        ) ;; case
        instancepointer->orient = wrOrient
          ) ;; unless
        ) ;; foreach
      ) ;; let
    )



    Originally posted in cdnusers.org by relyveld
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 19 years ago

    Relyveld and William,

    The "Virtuoso SKILL forum" is known here by the "Custom IC Skill" .

    I will now move this thread to that forum.

    Administrator


    Originally posted in cdnusers.org by Administrator
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 19 years ago

    Attached is some SKILL code for providing a convenient function for doing in-place
    flipping and rotation. See the comments in the code for more details on using it.

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    abFlip.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 19 years ago

    Apologies for the previous code I posted - it was missing some auxilliary functions defined in another file. This time I've attached the combined code (renamed slightly to follow the normal conventions for customer code - having an uppercase prefix) - which includes all the auxilliary functions.

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    CCSflip.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 19 years ago

    Thanks adbeckett.  This looks really useful.  However, being the newb that I am to SKILL....how do I use this file with Virtuoso?  I'm guessing that I might add a load statement to my .cdsinit file to load the whole file at startup.  But then how do I make work?  Do you use this with bindkeys, or does this somehow work dynamically with the right mouse button after the 'move' bindkey is hit?

    I'd appreciate any help you could give on this since I can see myself using this a lot.


    Originally posted in cdnusers.org by bigWayne
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 19 years ago

    You would add a line to your .cdsinit file:

    load("/path/to/CCSflip.il")

    and then define a bindkey (for example):

    hiSetBindKey("Layout" "n" "CCSflip(?orient "MY" ?relativeTo 'upperRight ?mode 'copy)")

    with whichever bindkey you want, and variant of the function you want (see the comments at the top for examples) in the final argument string.

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Vaughn
    Vaughn over 15 years ago

     Can the administrator find the proper line to CCSflip.il

     

    Thanks

     

    Vaughn 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    I think the attachment links got messed up in the transfer from cdnusers.org to the new Community Forums.

    Anyway, please find attached the latest version of CCSflip.il

    Regards,

    Andrew.

    CCSflip.il
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Vaughn
    Vaughn over 15 years ago

     Andrew,

     

    The past to the attatchment does not exist.

     

    https://www.cadence.com/Community/CSSharedFiles/forums/storage/48/24228/CCSflip.il

     

    Or I just can not view it. ... Yes I am logged in. ;) 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    Looks like a fault with the community forums. I've logged an IT ticket to get this fixed.

    In the meantime, if you can log onto support.cadence.com you should be able to find CCSflip.il - just search for CCSflip or solution number 11024872

    Regards,

    Andrew.


     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information