sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Basic operation on char...

    Scheduled Pinned Locked Moved Developers' Forum
    16 Posts 2 Posters 149 Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N Offline
      njeremy2
      last edited by

      Hello everyone ! 😄
      I have a stupid question but I can't find the solution...
      I would like to retrieve a string until " " (space) from description of component.

      %(#008000)[MY example :
      Definition : Cube
      Description : 755480RED That's my cube]

      755480RED is a reference of the cube and "That's my cube" the real description.
      I just need to retrieve the reference include in the description.

      description = Sketchup.active_model.description
      Sketchup.active_model.entities.each do |entities|
      @tab << entities
      	@tab.each do |element|
      		UI.messagebox "#{element.description}".to_i
      	end #end TAB.EACH
      end #model.each
      

      Here,
      when I put : UI.messagebox "#{element.description}" I have the complete description.
      when I put : UI.messagebox "#{element.description}".to_i I have only the first number (it works only if the reference are numbers only)

      What I need is to put a condition which is:
      Retrive the description until you found " " but I don't know how to do that.

      Someone can help me ?

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        element.description.split(' ')[0]

        Reference: String#split

        Thomas Thomassen — SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          Btw, did you create the component? Is it intended for the user to read that reference code?
          If not, then you might want to store it in an attribute:

          Entity#get_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#get_attribute
          Entity#set_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#set_attribute
          class AttributeDictionary: https://developers.google.com/sketchup/docs/ourdoc/attributedictionary
          class AttributeDictionaries: https://developers.google.com/sketchup/docs/ourdoc/attributedictionaries

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • N Offline
            njeremy2
            last edited by

            Yeahhh !! thanks thomthom !!

            I searched in french tutorials, that's why I didn't found anything !! lol

            👍

            1 Reply Last reply Reply Quote 0
            • N Offline
              njeremy2
              last edited by

              @thomthom said:

              Btw, did you create the component? Is it intended for the user to read that reference code?
              If not, then you might want to store it in an attribute:

              Entity#get_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#get_attribute
              Entity#set_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#set_attribute
              class AttributeDictionary: https://developers.google.com/sketchup/docs/ourdoc/attributedictionary
              class AttributeDictionaries: https://developers.google.com/sketchup/docs/ourdoc/attributedictionaries

              no no ! it's ok !

              Components are already create when I put components in design I launch my plug test.
              My plugin search all components and then I ask it to display each references include in their description

              1 Reply Last reply Reply Quote 0
              • N Offline
                njeremy2
                last edited by

                @thomthom said:

                Btw, did you create the component? Is it intended for the user to read that reference code?
                If not, then you might want to store it in an attribute:

                Entity#get_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#get_attribute
                Entity#set_attribute: https://developers.google.com/sketchup/docs/ourdoc/entity#set_attribute
                class AttributeDictionary: https://developers.google.com/sketchup/docs/ourdoc/attributedictionary
                class AttributeDictionaries: https://developers.google.com/sketchup/docs/ourdoc/attributedictionaries

                Sorry I don't understand the first time I read your post...
                I can use attributes but I see in AUTOMATIC Sketchup.pdf that's attributes cannot be stored when you save a component (I understand that)

                And put the reference into the description was for me the easiest solution (I hope, if someone has a better solution, tell me).

                In that way, I'm sure the reference is shared when I sent a component to my database

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  @njeremy2 said:

                  Sorry I don't understand the first time I read your post...
                  I can use attributes but I see in AUTOMATIC Sketchup.pdf that's attributes cannot be stored when you save a component (I understand that)

                  If you store attributes with the definition then you can export the component with the attributes.

                  Example:

                  componentinstance.definition.set_attribute('MyTest', 'Foo', 'Bar')

                  Export component

                  New model

                  Import exported model

                  componentinstance.definition.get_attribute('MyTest', 'Foo')
                  ( returns 'Bar' )

                  Thomas Thomassen — SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

                  1 Reply Last reply Reply Quote 0
                  • N Offline
                    njeremy2
                    last edited by

                    hmmmm, well...

                    With that, you can add an attribute called "reference" for all components and set attribute then ?

                    So if I do like that : componentinstance.definition.set_attribute('Reference', '755480RED', 'Valuedefaultif 755480RED doesnt exist')

                    That would work ?

                    And to list all references, how should I do ?
                    componentinstance.definition.set_attribute('Reference') ?

                    1 Reply Last reply Reply Quote 0
                    • thomthomT Offline
                      thomthom
                      last edited by

                      Read the API docs again.

                      set_attribute takes three arguments. The third one is the value.

                      entity.set_attribute( 'DictionaryName', 'Key', 'Value' )
                      entity.get_attribute( 'DictionaryName', 'Key' )

                      So, if you do something like to to add a reference ID:
                      entity.set_attribute( 'nJeremy2', 'Reference', referenceID )

                      You can list all definitions with a reference set like so:

                      <span class="syntaxdefault"><br />for definition in Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">definitions<br />  next if definition</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">image</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  next if definition</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">group</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  referenceID </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> entity</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">get_attribute</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'nJeremy2'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Reference'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  next if referenceID</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">nil</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment"># Do something to the definition here...<br /></span><span class="syntaxdefault">end<br /></span>
                      

                      Thomas Thomassen — SketchUp Monkey & Coding addict
                      List of my plugins and link to the CookieWare fund

                      1 Reply Last reply Reply Quote 0
                      • N Offline
                        njeremy2
                        last edited by

                        yeah ok !
                        I will try but the result is not guarantee

                        1 Reply Last reply Reply Quote 0
                        • N Offline
                          njeremy2
                          last edited by

                          my solution by putting the reference in description work, it isn't good programming but it works lol

                          thank you thom !

                          1 Reply Last reply Reply Quote 0
                          • thomthomT Offline
                            thomthom
                            last edited by

                            What if your user accidentally modify the description? Or some other plugin the user has install modifies it?

                            Thomas Thomassen — SketchUp Monkey & Coding addict
                            List of my plugins and link to the CookieWare fund

                            1 Reply Last reply Reply Quote 0
                            • N Offline
                              njeremy2
                              last edited by

                              @thomthom said:

                              What if your user accidentally modify the description? Or some other plugin the user has install modifies it?

                              right...

                              But I try to use attributes, but I cannot do it right

                              1 Reply Last reply Reply Quote 0
                              • thomthomT Offline
                                thomthom
                                last edited by

                                What is not working right?
                                Do you have a sample code?

                                When assigning an attribute to the definition the attribute is stored whenever you export - it works fine. But if it doesn't work for you then it's probably something in your code that isn't quite right.

                                Thomas Thomassen — SketchUp Monkey & Coding addict
                                List of my plugins and link to the CookieWare fund

                                1 Reply Last reply Reply Quote 0
                                • N Offline
                                  njeremy2
                                  last edited by

                                  @thomthom said:

                                  What is not working right?
                                  Do you have a sample code?

                                  When assigning an attribute to the definition the attribute is stored whenever you export - it works fine. But if it doesn't work for you then it's probably something in your code that isn't quite right.

                                  I have nothing at home, tomorrow I'll show you what I need to do with that (with screenshots)

                                  1 Reply Last reply Reply Quote 0
                                  • N Offline
                                    njeremy2
                                    last edited by

                                    For this example I put a tree and a Blue cube.
                                    The tree has no description and the Cube has code reference then the real description after "b755480 BLABLABLA".
                                    Then I create a groupe with the 2 objects called "Tree+cube"

                                    http://img840.imageshack.us/img840/23/designpx.png

                                    Now I export all information with my plugin :

                                    http://img689.imageshack.us/img689/8130/exports.png

                                    then I export all information in CSV File :

                                    http://img804.imageshack.us/img804/2953/exportcsv.png

                                    1 Reply Last reply Reply Quote 0
                                    • 1 / 1
                                    • First post
                                      Last post
                                    Buy SketchPlus
                                    Buy SUbD
                                    Buy WrapR
                                    Buy eBook
                                    Buy Modelur
                                    Buy Vertex Tools
                                    Buy SketchCuisine
                                    Buy FormFonts

                                    Advertisement