sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🛣️ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Test array generation...

    Scheduled Pinned Locked Moved Developers' Forum
    3 Posts 2 Posters 152 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.
    • D Offline
      driven
      last edited by driven

      I made a 'array sort' for some testing, but wonder if it can be done better [in ruby 1.8.5] or if anyone has better to share...

      <span class="syntaxdefault"></span><span class="syntaxcomment">#&nbsp;I'm&nbsp;drawing&nbsp;cubes&nbsp;when&nbsp;the&nbsp;user&nbsp;draws&nbsp;a&nbsp;line,&nbsp;this&nbsp;is&nbsp;†o&nbsp;simulate&nbsp;the&nbsp;user&nbsp;adding&nbsp;lines,<br />#&nbsp;I&nbsp;needed&nbsp;a&nbsp;large&nbsp;set&nbsp;of&nbsp;arrays,&nbsp;or&nbsp;a&nbsp;lot&nbsp;of&nbsp;time,<br />#&nbsp;I&nbsp;looked&nbsp;for&nbsp;pre-made&nbsp;sets&nbsp;to&nbsp;no&nbsp;avail&nbsp;so&nbsp;I&nbsp;made&nbsp;this&nbsp;for&nbsp;testing&nbsp;my&nbsp;core&nbsp;code.<br />#&nbsp;I&nbsp;can&nbsp;also&nbsp;deduct&nbsp;this&nbsp;time&nbsp;from&nbsp;the&nbsp;same&nbsp;settings&nbsp;with&nbsp;my&nbsp;'cube'&nbsp;code,&nbsp;to&nbsp;gauge&nbsp;the&nbsp;real&nbsp;time&nbsp;it&nbsp;takes.<br />#<br /></span><span class="syntaxdefault">t1&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Time</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">now<br /></span><span class="syntaxcomment">#<br /></span><span class="syntaxdefault">at_long_list&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">lng_lst&nbsp;</span><span class="syntaxkeyword">=&nbsp;((Array.new(</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">*-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">}).</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">)+(Array.new(</span><span class="syntaxdefault">9</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">*</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">})&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;&nbsp;=>&nbsp;[-9,&nbsp;-8,&nbsp;-7,&nbsp;-6,&nbsp;-5,&nbsp;-4,&nbsp;-3,&nbsp;-2,&nbsp;-1,&nbsp;0,&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5,&nbsp;6,&nbsp;7,&nbsp;8,&nbsp;9]<br />#<br /></span><span class="syntaxdefault">test_counter&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">tst_cnt&nbsp;</span><span class="syntaxkeyword">=&nbsp;(Array.new(</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">*+</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">})&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;set&nbsp;cluster&nbsp;f•ck&nbsp;size&nbsp;with&nbsp;this&nbsp;one&nbsp;,&nbsp;Array.new(1)&nbsp;will&nbsp;run&nbsp;the&nbsp;'long_list'&nbsp;19&nbsp;times.&nbsp;100&nbsp;>>&nbsp;1900<br />#<br />#&nbsp;test_counter&nbsp;runs&nbsp;a&nbsp;block,<br />#<br /></span><span class="syntaxdefault">tst_cnt</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">c</span><span class="syntaxkeyword">|<br />&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;#&nbsp;I&nbsp;have&nbsp;moved&nbsp;essentials&nbsp;inside,&nbsp;just&nbsp;to&nbsp;make&nbsp;it&nbsp;stand&nbsp;alone&nbsp;for&nbsp;others&nbsp;to&nbsp;try...<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">entities&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">start_operation</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"JCB.cube"</span><span class="syntaxkeyword">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">###&nbsp;name&nbsp;of&nbsp;my&nbsp;tool,&nbsp;could&nbsp;be&nbsp;anything...<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;#&nbsp;at_long_list&nbsp;&nbsp;runs&nbsp;an&nbsp;inner&nbsp;block,&nbsp;that&nbsp;does&nbsp;the&nbsp;work.<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxkeyword">@</span><span class="syntaxdefault">lng_lst</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{&nbsp;|</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;it&nbsp;names&nbsp;the&nbsp;group,&nbsp;and&nbsp;adds&nbsp;geometry&nbsp;to&nbsp;the&nbsp;model<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">grp&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />&nbsp;&nbsp;&nbsp;&nbsp;grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"grp;&nbsp;#{c}&nbsp;#{n}"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">gents&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;short_list&nbsp;is&nbsp;derived&nbsp;using&nbsp;long_list&nbsp;.sort_by&nbsp;{&nbsp;rand&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">shrt_lst&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">lng_lst</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">sort_by&nbsp;</span><span class="syntaxkeyword">{&nbsp;</span><span class="syntaxdefault">rand&nbsp;</span><span class="syntaxkeyword">}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">a&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0..2</span><span class="syntaxkeyword">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;[]&nbsp;of&nbsp;3&nbsp;random&nbsp;number<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">b&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[-</span><span class="syntaxdefault">3.</span><span class="syntaxkeyword">.-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">];&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;[]&nbsp;of&nbsp;3&nbsp;random&nbsp;number<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;added&nbsp;a&nbsp;filter&nbsp;for&nbsp;zero&nbsp;pairings,&nbsp;I'm&nbsp;zipping&nbsp;a&nbsp;and&nbsp;b&nbsp;to&nbsp;check&nbsp;for&nbsp;zero&nbsp;and&nbsp;shuffle&nbsp;b&nbsp;if&nbsp;true...<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">d&nbsp;&nbsp;</span><span class="syntaxkeyword">=&nbsp;(</span><span class="syntaxdefault">a</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">zip&nbsp;b</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">map</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">m</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">n</span><span class="syntaxkeyword">|&nbsp;(</span><span class="syntaxdefault">m&nbsp;</span><span class="syntaxkeyword">-&nbsp;</span><span class="syntaxdefault">n&nbsp;</span><span class="syntaxkeyword">)};<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span class="syntaxdefault">d&nbsp;</span><span class="syntaxkeyword">==&nbsp;[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">b1&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">shrt_lst</span><span class="syntaxkeyword">[-</span><span class="syntaxdefault">4.</span><span class="syntaxkeyword">.-</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">puts&nbsp;</span><span class="syntaxstring">";zero&nbsp;#{d};"&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;keep&nbsp;tabs&nbsp;on&nbsp;frequency<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">end</span><span class="syntaxkeyword">;&nbsp;</span><span class="syntaxcomment">#if<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;for&nbsp;me&nbsp;the&nbsp;line&nbsp;is&nbsp;a&nbsp;diagonal_line&nbsp;=&nbsp;diagl_ln<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">diagl_ln&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">gents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_line&nbsp;&nbsp;a</span><span class="syntaxkeyword">,&nbsp;(</span><span class="syntaxdefault">b&nbsp;</span><span class="syntaxkeyword">||&nbsp;</span><span class="syntaxdefault">b1</span><span class="syntaxkeyword">);&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#&nbsp;if&nbsp;c&nbsp;=&nbsp;[0,0,0],&nbsp;use&nbsp;b1...<br />&nbsp;&nbsp;&nbsp;&nbsp;#p&nbsp;b<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;all&nbsp;my&nbsp;other&nbsp;code&nbsp;goes&nbsp;in&nbsp;here<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">p&nbsp;&nbsp;grp</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">name</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxkeyword">}&nbsp;</span><span class="syntaxcomment">#close&nbsp;the&nbsp;inner&nbsp;block<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;#<br />&nbsp;&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">commit_operation<br />&nbsp;&nbsp;</span><span class="syntaxcomment">#<br />&nbsp;&nbsp;#<br /></span><span class="syntaxkeyword">}&nbsp;</span><span class="syntaxcomment">#close&nbsp;the&nbsp;outer&nbsp;block<br />#<br />#<br /></span><span class="syntaxdefault">puts&nbsp;Time</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">now&nbsp;</span><span class="syntaxkeyword">-&nbsp;</span><span class="syntaxdefault">t1<br /></span><span class="syntaxcomment">#<br />#&nbsp;</span><span class="syntaxdefault"></span>
      

      as this is I get 180 edges 'grouped' in 0.99999

      which is fast enough for my needs, but I wondered if there are better ways.
      john

      learn from the mistakes of others, you may not live long enough to make them all yourself...

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

        Sorry, but can you do a short explanation of what you are doing? There's some cryptic variable names there, and some funky indentation. :s

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

        1 Reply Last reply Reply Quote 0
        • D Offline
          driven
          last edited by

          TT

          added commenting to the original code block to try and explain things better, I can't get the formatting to hold...

          but this is better.
          john

          learn from the mistakes of others, you may not live long enough to make them all yourself...

          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