ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info
  • Over right the face class

    4
    0 Votes
    4 Posts
    214 Views
    M
    Tig you are right, using AttributeDeictionary is the right way to go and does exactly what i need. Thank you
  • Zoom Selection

    36
    0 Votes
    36 Posts
    5k Views
    D
    @pixero said: @cadfather said: if i select something inside of a group it does not work - but will fit the contents to screen if nothing is selected. What do you mean with "It doesnt work" ? What do you want it to do? If you are inside a group the group itself isn't selected. My script zooms in to whats selected. Inside group or not. Thx a lot! Great plugin. Work fine, no problem with selection zoom. Can you recommend me any other useful plug?
  • Lock an object with password?

    8
    0 Votes
    8 Posts
    333 Views
    Rich O BrienR
    SimLab have a plugin that exports to PDF
  • Urgent question to the ruby API gurus

    2
    0 Votes
    2 Posts
    209 Views
    thomthomT
    Change the camera: http://code.google.com/apis/sketchup/docs/ourdoc/camera.html#set
  • Ruby created images not ok?

    3
    0 Votes
    3 Posts
    244 Views
    P
    Hey Tig, Thx for the answer. Why i am not using teh animation exporter is because it skips page observers. Since changing from one page to another invokes a function in my model i cannot use it. That's why i'm looking for an alternative to create movies. You think it's possible that adding the compression an transparent factor solves the issue? Cause i have also tried it with images generated by Export-->2D graphic and that had the same error. Thx!
  • Uploading JSON with js/php

    4
    0 Votes
    4 Posts
    280 Views
    chrisglasierC
    The answer from Stack Overflow is: <span class="syntaxhtml">d&nbsp;=&nbsp;<span class="syntaxdefault"><?php&nbsp;</span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">json_encode</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$target_path</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault">?></span>;</span> They pointed out this is only useful if you are working with localhost.
  • Newbie's anxiety ---- simple question

    3
    0 Votes
    3 Posts
    234 Views
    B
    really helpful!!! thanks a lot
  • Face front side outwards

    3
    0 Votes
    3 Posts
    502 Views
    mitcorbM
    Hi, morci429: Perhaps this recent development from honoluludesktop? http://forums.sketchucation.com/viewtopic.php?t=32088#p283327
  • UI.openpanel - wildcard bug

    7
    0 Votes
    7 Posts
    713 Views
    Dan RathbunD
    @honoluludesktop said: Someone previously showed me that it works this way. chosen_file=UI.openpanel("Select DXF File","", "*.Dxf") And also like: chosen_file=UI.openpanel("Select DXF File","*.Dxf") However... Windows will use it's own directory paths it automatically saves into the Registry, for each file extension. (1) If the openpanel has never before selected a *.dxf file, then the openpanel will (likely) open in the user's My Documents folder. (2) If the User did previously select a *.dxf file, with the openpanel, Windows will open in the Most Recently Used (MRU) path Windows saved for the *.dxf extention. Setting the working directory via Dir.chdir has no effect on what directory the openpanel starts in.
  • Get group location over Ruby Script

    10
    0 Votes
    10 Posts
    3k Views
    H
    @tig said: tr=group.transformation to that point pt.transform!(tr) Thank you very much for the tip !
  • Ruby &lt;-&gt; cmd command line: How to get return value?

    4
    0 Votes
    4 Posts
    4k Views
    TIGT
    This might be clearer ruby: x="E;/new_batch.cmd" UI.openURL(x) returns true batch file: @echo off echo "Hello World" echo pause exit Waits for you to close it... x="file:/E:/new_batch.cmd" will also work... Writing the bat or cmd file to the root directory would probably be better if it were into a Temp folder ?
  • How to add coordinate into SU api

    20
    0 Votes
    20 Posts
    2k Views
    Dan RathbunD
    @borg.stef said: ... and it gives me this error: #<NoMethodError: undefined methodpoint3d' for Geom:Module>` Because methods begin with lower case identifiers. Class (and Module,) indentifiers are titlecase. @borg.stef said: How can i put a simple model in the required location? I did the following coding: model = Sketchup.active_model pt = Geom::point3d.new(0,0,0) tr = Geom::Transformation.new(pt) model.transform!(tr) The model origin is already at [0,0,0], and there is a constant ORIGIN for it. So your code above does nothing.
  • Slicer-excellent ruby

    19
    0 Votes
    19 Posts
    11k Views
    TIGT
    I have reported the weirdness to the powers that be at Google - it is certainly reproducible although I had never seen it before... Meanwhile the temp fix 'Triangulate Faces' is here http://forums.sketchucation.com/viewtopic.php?p=175613#p175613 for the rest of you...
  • Calculating bezier curve smoothness?

    7
    0 Votes
    7 Posts
    564 Views
    mitcorbM
    Check his updates at the end of the article also.
  • Api-diagram

    5
    0 Votes
    5 Posts
    402 Views
    Dan RathbunD
    @larsen said: Please, is this api diagram correct? NO (you should remove it.) Thanks for taking it down Larsen There are links to the available diagrams: SketchUp Ruby API - Class Diagram http://code.google.com/apis/sketchup/docs/diagram.html Sketchup Ruby API Class Diagrams by Jim Foltz http://sketchuptips.blogspot.com/2008/08/sketchup-ruby-api-class-diagrams.html
  • Calculating the final vertices of a nested face

    3
    0 Votes
    3 Posts
    284 Views
    S
    @tig said: Have you tried tr=container.transformation.inverse and applying it to the initial object and then iterating and getting/setting the transformation for the container's container etc until you get to the model level... That didn't seem to work (inverse), though I may very well have misunderstood what you meant, but what you said gave me an answer anyway. By applying the transform to the points at each container successively, it works perfectly! (or at least in every test so far) Which is how I should have tried it initially but I was thinking from a performance standpoint, and forgot the old adage "premature optimization is the root of all evil" def WALK.GetParent(ent) Sketchup.active_model.start_operation("Walk") model = Sketchup.active_model @newg = model.entities.add_group m = model.materials.add "test" m.color="red" orig = ent tpos = Geom;;Point3d.new 0,0,0 # keep track of origin trans = Geom;;Transformation.new(Geom;;Point3d.new(0,0,0)) # add transforms to this vertices = orig.outer_loop.vertices.map {|v| v.position.clone} while (ent.respond_to?('parent') ) # walk up hierarchy if ((ent.is_a? Sketchup;;ComponentDefinition)) if ent.group? t = ent.instances[0].transformation # Get the group's transform vertices.each_with_index do |v,i| vertices[i].transform! t end end ent = ent.instances[0] # become the instance end ent = ent.parent end f = @newg.entities.add_face vertices # create the face f.material=m Sketchup.active_model.commit_operation end Thanks again for the help!
  • Validate points for planar faces.

    4
    0 Votes
    4 Posts
    373 Views
    D
    Anyone has any suggestions?
  • How to receive the size of a line Sketchup rubi

    6
    0 Votes
    6 Posts
    2k Views
    TIGT
    You CAN sort of fudge it... make a separate SKP file containing a dimension 1" long and 1" offset. Then in code load it as a component into your SKP. Add an instance at a point and scale it in the X to match the length to another point and in the Y for the offset needed. You also need to transform-rotate it so that it aligns with the vector of the two points etc... When done you can explode the dim-component instance back into a plain dimension. An dims added this way will ever be linked to an edge or vertex as in a manually added one... You could perhaps include a 1" long edge in the dim-component that the dim refers to... and if that then replaced the original line below it when exploded it might keep some linking ? It's better than nothing... but only just...
  • Author/credits API ?

    13
    0 Votes
    13 Posts
    896 Views
    TIGT
    There is no 'name=' option for dictionaries - you have to clone the whole thing with a new name and delete the original. The core-code magically prevents the specific dictionary name [GSU_ContributorsInfo] from being 'made' or edited by the standard users [although we have seen that 'deleting' it is possible - but I'd think that's probably an oversight by Google] - BUT of course it IS editable somehow... because Google can do it !
  • Attribute dictionary in callback

    8
    0 Votes
    8 Posts
    329 Views
    TIGT
    @kdasilva said: I appreciate all your help, but I am still unsure on why my get get_attribute method would return nil in a different call back? is there a scope issue I am not accounting for? the get_attribute works within the same callback so I am lead to believe that the instance name is working as a key... Did you check that the 'key' was acceptable ? You were setting the attribute for the model etc ? Rather that try an do it directly in the call_back make a method and run it with self.callback1() etc... What you are trying to do is relatively straightforward ... just break it into logical steps......

Advertisement