⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update
  • Reduction Ruby

    3
    0 Szavazatok
    3 Hozzászólások
    1k Megtekintések
    N
    While somebody might be able to create a script to do this [which would be nice] I don't really see the need. Blender [free] already has an excellent feature to do this [decimate] and can be done without needing to learn blender interface. Work process like this: export .obj from sketchup import to blender right click object to select, add decimate modifier set to whatever level [say .25] and apply export from blender as .3ds import back into sketchup I'm a huge fan of sketchup, but when there's a better tool for the job... [dsarchs]
  • Is there a minimum rotation for components?

    5
    0 Szavazatok
    5 Hozzászólások
    947 Megtekintések
    KrisidiousK
    nice thinking outside the box or radian as it were... Rick
  • Ruby Console doesn't load (two monitor mis-hap)

    4
    0 Szavazatok
    4 Hozzászólások
    1k Megtekintések
    KrisidiousK
    lol good point
  • Reporting API bugs

    3
    0 Szavazatok
    3 Hozzászólások
    994 Megtekintések
    J
    @craigd said: Hi Jim, here is the link to the new Ruby Discussions Group: http://groups.google.com/group/sketchupruby/topics Cheers, CraigD Craig, I've been a regular reader and contributor since the group's inception - in fact, I was the one who asked for a Ruby forum. I never did understand why they named it "Ruby Ideas." Anyway, it never occurred to me to post there, but I'll try.
  • Eliminating un-needed faces

    4
    0 Szavazatok
    4 Hozzászólások
    1k Megtekintések
    D
    It sounds a very good idea for a script though if one is not available. I would definately use it!
  • Creating Ruby Scripts Question

    2
    0 Szavazatok
    2 Hozzászólások
    958 Megtekintések
    R
    Primarily, do research to learn about ruby. It helped me that I'd learned BASIC back in the day. [When I learned, there was no DOS because there was no Disk - our first computer loaded software from cassette tapes, and the OS was hard-wired. I still remember going with my dad to have the RAM upgraded from 16K to 64K (no joke!), and then coming home from school another time to find two large gray boxes next to the monitor. They happened to be floppy drives (the big 5.25" kind). So much faster than tapes! Then there was that MOdulator-DEModulator to allow computers to connect over phone lines (a "MODEM", it was called). And there was no such thing as a mouse...] Anyway, I digress. Having any background is helpful, but ruby is easy enough to learn even without a programming background. See http://www.ruby-doc.org/docs/ProgrammingRuby/ for a good introduction and research resource for ruby programming. Then study the ruby help files for how SketchUp adds its own objects and methods to ruby. Then study other scripts to see how they are constructed, what methods they use, etc. Some starting points: In ruby, the application is referred to as "Sketchup", the model is "Sketchup.active_model", and the geometry is "Sketchup.active_model.entities" (base-level geometry) or "Sketchup.active_model.active_entities" (base- or nested-level geometry). Any of these things can be assigned to variables: model=Sketchup.active_model entities=model.active_entities (because 'model' has been assigned to "Sketchup.active_model", then this assignment is the same as saying "entities=Sketchup.active_model.active_entities") selection=model.selection So, there's lesson one. Have fun learning!
  • Texture exporting from SU

    4
    0 Szavazatok
    4 Hozzászólások
    1k Megtekintések
    jujuJ
    Whaat, good to see you here at SketchUcation.
  • How the RUBY apply a dimension(with label, dimension line wi

    6
    0 Szavazatok
    6 Hozzászólások
    2k Megtekintések
    TIGT
    There is a trick that could do this... I'll use 'metres' in the example below but you can adjust this to suit whatever units you want... Make a 1m long dimension (X) against a horizontal edge - in a 'flat' XY orientation, with a 1m long leader offset (Y). Highlight the dim and make it into a component - called let's say 'Dim'. Save it externally as its own 'skp' - into a logical folder path. In a model, your script then inserts an instance of Dim.skp from the folder. In your model/script you have the required edge... The edge has a knowable length (let's say 2.1m), so your script transform scales the instance proportionately by x2.1 in X. The figured dimension will automatically adjust to 2.1m to suit. You can also adjust the leader scale (Y). Transform the instance location and rotation to suit the edge's. You now have a dimension that reflects the edge's length and orientation. You can also use this method to script a 'dimension' between any two known points... You might also be able to change the 'orphaned dim' colour to match the normal dim's colour ? Not sure how to access/set this ??? The dim's arrow heads will scale in the X... too so you might want to make a set of Dim skps - say 1-100mm, 100mm-1m, 1m-3m, 3m-10m etc and then insert instances of them to match nearest to the edge's length - so that the subsequent scaling of them wouldn't distort the dim-compo's arrow heads too much... You could also 'connect' the edge and component-dim using attributes and observers, so if the particular edge changed, then the associated dim-compo could be adjusted automatically to suit... It would then behave very much like a normal associated dimension. This could be all very convoluted to achieve, BUT it's still possible...
  • Is instancing possible?

    11
    0 Szavazatok
    11 Hozzászólások
    3k Megtekintések
    K
    TIG, Thanks for all this support. I will try that method right away. Regards, kwistenbiebel
  • Anyone able to write 3D XML importer?

    10
    0 Szavazatok
    10 Hozzászólások
    7k Megtekintések
    M
    First of all, one piece of good news is that I found out that not Dassault, but actually Lattice developed 3DXML, an extention of their own Lattice XML. On websites about Lattice XML I also find the extension XVL bud have not yet found out what that is. One site that looked interesting to me at first sight is http://www.sns.gov/APGroup/appProg/xal/xalDoc/gov/sns/xal/model/xml/LatticeXmlTest.html but perhaps it has nothing to do with this subject. After all it won't do us much good that there are zillions of sites about ordinary XML either. And the best news so far is that I received a quick and dirty triangle only to .obj converter in Python script. So if any of you can read Python (my fav. scripting language, use it a lot in Paintshop) and change it into ruby, that would probably be all we need. -Jim Foltz created an .obj importer for SU, is on scriptspot -I guess most geometry that we would ever like to capture will probably be triangulated -I believe all textures in 3DXML are stored either in their native format or as BMP. Finding binary blocks of data, copying, saving should be easy with any hex editor. [Maggy]
  • Vector.angle_between() -- Direction?

    8
    0 Szavazatok
    8 Hozzászólások
    3k Megtekintések
    R
    Yeah, sorry about that. I suppose I shoul give it its own spot for developer use
  • How can I assign a keyboard key as a SketchUp shortcut

    4
    0 Szavazatok
    4 Hozzászólások
    6k Megtekintések
    TIGT
    It IS possible to modify and add shorcuts to the PC registry using SketchUp Ruby methods [search other recent threads on this] BUT I would not recommend it unless it's for 'in-house' use only. As TBD says imagine the chaos it'd cause if your script messed up everyones pre-set shortcuts... IF you want to do this then at least offer the choice - make your script with an installer [part] which checks to see if the shortcut has already been used, and with a dialog that asks something like, "Would you like to assign 'Q' as the shortcut key for this tool ?" and if it's already pre-set, "\nNote that 'Q' is currently used for xxxxxxxxxx."; Yes/No. If Yes then you make / change the shortcut. The installer only auto-runs once - on exiting the dialog it also writes something into the registry that is checked by it when it's about to run again, and if that's found then doesn't even ask. This way the user has the option - and at least then knows that a key has been assigned...
  • Timing script needed for bad timer

    3
    0 Szavazatok
    3 Hozzászólások
    3k Megtekintések
    S
    Bruce - see the bottom of this thread: Dead Link This is timely- project management software commercially available for free today, but only today - 16 hours left [Shaun Tennant]
  • Sketchup.active_model.layers returns <Deleted Entity>?

    7
    0 Szavazatok
    7 Hozzászólások
    4k Megtekintések
    R
    I tried your example script, and see the problem you see. According to the SU ruby docs: "Currently there are two behaviors defined. A page keeps a list of layers that do not have their default behavior. If a layer is not in that list, then it is set to its default visibility determined by one of these flags. LAYER_VISIBLE_BY_DEFAULT 0x0000 LAYER_HIDDEN_BY_DEFAULT 0x0001" The strange thing is that in commenting out different lines and trying the script again, LAYER_IS_HIDDEN_ON_NEW_PAGES is the setting that sticks - not LAYER_IS_HIDDEN_BY_DEFAULT. I'll report that to the SU crew.
  • Saved file does not match what's on the screen.

    3
    0 Szavazatok
    3 Hozzászólások
    4k Megtekintések
    R
    I could take a look - contact me through Smustard.
  • A Ruby to display the name and creator of a ruby?

    2
    0 Szavazatok
    2 Hozzászólások
    4k Megtekintések
    A
    If the programmers would writing real extensions, you could see name etc. under Windows > Preferences. Would be possible to do this with variables, BUT: The programmers must write classes, not only simple methods including the following module in the way the class MyExtension does: module DescribedExtension @@author = '' @@version = '' # ... end class MyExtension > Sketchup;;Extension include DescribedExtension def initialize @@author = 'azuby' if @@author.empty? @@version = '1.0' if @@version.empty? end # YOUR METHODS HERE end So you can ask the extension for info: if MyExtension.include? DescribedExtension puts MyExtension.author puts MyExtension.version end A much better way would be a kind of manger, which is could from extensions which include DescribedExtension. Than you only have to ask the manager for all described extensions. This is done in my approach to write an extension manager. But unfortunately the Sketchup Ruby API does not provide the required methods to finish my work. But you can go into the sources and look how it is done. azuby
  • Accessing submenus / extension manager

    14
    0 Szavazatok
    14 Hozzászólások
    6k Megtekintések
    J
    ("a".."z").each { |l| begin print "Trying #{l};" UI.menu(l).add_submenu('jim') puts "OK" rescue puts "Error on #{l}." end } I don't like the "code" font, by the way; it's hard to read.
  • Organize your Rubies?

    7
    0 Szavazatok
    7 Hozzászólások
    5k Megtekintések
    A
    I'm wondering, why the Ruby extension programmers do not make use of the Sketchup built-in Extension class, so the users can switch the extension on and off via Window > Preferences ... In every case (with a loader script or built-in support) you need to restart Sketchup when switchung off extensions, because you can't take away menu items. Would be possible to overwrite the methods in the Ruby extension when switching off via loader script, but anyway the extension is loaded. Also have a look on my approach(!) to organize scripts: http://www.sketchucation.com/forums/scf/viewtopic.php?f=127&p=7623#p7623 azuby
  • Something about AppObserver#onQuit

    2
    0 Szavazatok
    2 Hozzászólások
    5k Megtekintések
    R
    Sorry I'm no help - have not tried that observer yet. The onSave observer has been requested, and noted by the SU folks, so maybe we'll get that one soon...
  • Shortcuts Plugin Possible?

    19
    0 Szavazatok
    19 Hozzászólások
    9k Megtekintések
    CadFatherC
    the CadFather strikes again! EDIT: one more bug, if you go and enter a new (or the same) key for 'add scenes', 'update scenes' etc it will overwrite your tweak - however it will work as long as once you have set it you leave it alone. and that is the end for tonight

Advertisement