1 2 3 First Previous 31 Replies Latest reply on Mar 29, 2010 8:35 AM by lary.e

    CrossProbing using CES

    navit.alaouf

      Is there a way to utilize the crossprobing capabilities between CES and DxDesigner using automation? (In expedition)

        • 1. Re: CrossProbing using CES
          Satoru

          Hi Navit-san,

           

          Are you using the CES and DxDesigner of which version?

          The DxD2007.X and CES can use the Cross Probe function.

           

          DxD-CES_CrossProbe.gif

           

          Regards,

          Satoru

          • 2. Re: CrossProbing using CES
            navit.alaouf

            The version I'm working on is 2007.8.

            What I'm trying to do is this:

            I have an application that has all the design data in memory (nets and comps) extracted from CES and I want to have cross probing ability from my application to dxdesigner.

            I would a appreciate if you could add some code lines that demonstrate how to use the cross prob from CES to DxDesigner.

             

            Thanks,

            Navit

            • 3. Re: CrossProbing using CES
              Satoru

              Hi Navit-san,

               

              You have to open a sheet to select Net or Component in DxDesigner by Automation.

              In order to open a sheet by Automation, a schematic name and a sheet name are required.

              Are the schematic name and the sheet name included in your information?

               

              Satoru

              • 4. Re: CrossProbing using CES
                navit.alaouf

                Hello Satoru,

                I don't have the data you mentioned.

                I'll try and explain again what I have and what I want to accomplish.

                I would like to connect to CES by automation, extract all the nets and comps data and upload it in my application.

                When a user will choose a net/comp in my application I want it to be selected in DxDesigner.

                I assume that this is possible, since it's possible when I'm in the CES application.

                 

                 

                Thanks,

                Navit

                • 5. Re: CrossProbing using CES
                  Robert_Szymanski

                  Hello,

                   

                  Please use SelectObj method to select an object in CES. "ElectNet" is the object type which should be selected. The other object types can be found in the documentation.

                   

                  1)  The object (row) will be selected.

                  Application.SelectObj "CES","ElecNet","N23",""

                   

                  2) The constraint field will be selected.

                  Application.SelectObj "CES","ElecNet","N23","MIN_DELAY"

                   

                  Thanks,

                  Robert

                  • 6. Re: CrossProbing using CES
                    john_dube

                    Hi Navit,

                     

                    In addition to Robert's recommendation, I can provide some details about opening CES.

                     

                    Connecting to CES is a little different than connecting to other applications, because the design context must be supplied before calling CreateObject.

                     

                    This is done with an environment variable, CES_AUTOMATION_CMD, which supplies the command line arguments that are used when the CES application is invoked.

                     

                    Attached you will find a small script form that can be opened from DxDesigner using the File -> Open -> File menu, and browse to the CESProbe.efm file.

                     

                    There is a combo box that shows all the designs in the current project, select the top-level design and click the Open CES button.  The script assembles the command line, calls CreateObject("Ces.Application"), and enables cross-probing (CES.XprobeMode = True).

                     

                    The list box will show all the electrical nets in the design, when a net name is double-clicked, the script calls the SelectObj method to cross-probe to DxDesigner.

                     

                    When the script form is closed, the CES application is terminated.

                     

                    John

                     

                    Attempting to attach file

                    • 7. Re: CrossProbing using CES
                      Satoru

                      Hi Navit-san and John-san,

                       

                      I think that Sub TheView_EventInitialize() becomes the following codes.

                       

                      [Original]

                        ComboBox1.AddString sDesign

                      [Modify]

                        ComboBox1.AddString projdata.GetiCDBDesignRootBlock(sDesign)

                       

                      To select the component, I changed.

                       

                      Regards,

                      Satoru

                      • 8. Re: CrossProbing using CES
                        navit.alaouf

                        John, Thank you very much

                        The script was very helpful. Now I have full crossprobing from my application to the design.

                        It seems that CES should be open in the background.isn't it?

                         

                        One small question regarding CES. How can I extract the data in the other columns.

                        For example in the Part sheet, I would like to read the Hierarchical Path.

                         

                        Thanks

                        Navit

                        • 9. Re: CrossProbing using CES
                          navit.alaouf

                          Satoru Thank you very much for your addition.

                          • 10. Re: CrossProbing using CES
                            john_dube

                            Hi Navit,

                             

                            Yes, CES is running in the background, and can be made visible by setting the Visible property to True, if you would like.

                             

                            You can get the constraints through the CES automation interface, where the interface to the database is the ObjectDefs property on the CES tool object.

                             

                            Since the hierarchical path is on a pin in the Parts page, you can do this:

                             

                                 Set cesdb = CES.Tools("CES").ObjectDefs

                                 Set objPin = cesdb.Sheets("PART").FindObject(sPinName)

                                 sHierPath = objPin.ConstraintEx("PATH")

                             

                            If you want to get the pins from the electrical net, you can do this:

                             

                                 Set cesdb = CES.Tools("CES").ObjectDefs

                                 Set objNet = cesdb.Design.GetElecNet(sNetName)

                                 For Each objPin on objNet.Pins

                                      sHierPath = objPin.CompPin.Object.ConstraintEx("PATH")

                                 Next

                             

                            John

                            • 11. Re: CrossProbing using CES
                              navit.alaouf

                              Thank you very much. Your information helps me very much.

                              I have one more question, and I hope that by that I will get all the data I need.

                              Is there a way to get the connectivity of the design from the CES?

                               

                              Thanks

                              Navit

                              • 12. Re: CrossProbing using CES
                                john_dube

                                Hi Navit,

                                 

                                Yes, you can get the design connectivity from the CES automation interface.

                                 

                                In the previous example, I showed how to get all the pins on the electrical net.

                                 

                                John

                                • 13. Re: CrossProbing using CES
                                  navit.alaouf

                                  Thank you very much, I found the data I needed.

                                  There is only one thing I can't figure out about the nets, and it's the GLOBAL ones.

                                  How do I get them and their connectivity?

                                   

                                  Thanks,

                                  Navit

                                  • 14. Re: CrossProbing using CES
                                    john_dube

                                    Hi Navit,

                                     

                                    You can use the Design.GetPowerNets method to get a collection of the "global" nets.

                                     

                                    I noticed an error in the documentation, though.  The documentation indicates that the method returns a collection of strings (ICmsStrings), but it really returns a collection of net objects (ICmsNets).

                                     

                                    The example is correct, though, it shows that you have to get the .Name property of the net.

                                     

                                    You can get the pins on the global nets by accessing the Pins property:

                                     

                                         For Each pwrnet in CES.ObjectDefs.Design.GetPowerNets(0)

                                              For Each pwrpin in pwrnet.Pins

                                                   ...

                                              Next

                                          Next

                                     

                                    For some reason, the Pins collection is empty for "non-routed" power nets (those with the Visible option unchecked in Power & Grounds Settings dialog).

                                     

                                    John

                                    1 2 3 First Previous