sketchucation logo sketchucation
    • Login
    1. Home
    2. fredo6
    3. Posts
    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!
    🔌 Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download
    Offline
    • Profile
    • Following 0
    • Followers 59
    • Topics 174
    • Posts 5,348
    • Groups 3

    Posts

    Recent Best Controversial
    • RE: Problem with input box displaying values

      For those interested in Windows-style dialog boxes (i.e. not Web dialogs), I had written a library Libtraductor.rbthat supports also language translation in dialog boxes and ease the checking of parameters (min, max, string patterns, ...). It also preserves defaults and previous values.

      I use it in Bezierspline and in JointPushPull (and actually in other unpublished scripts).

      Attached is the script, as well as a tutorial for programmers in English.

      Here is a snippet of the interface

      
      dlg = Traductor;;DialogBox.new title
      
      #Declaring fields, either string, numeric or unit-based numeric, or enumeration list;
      dlg.field_string symbol, label, default, validation_pattern
      dlg.field_numeric symbol, label, default, value_min, value_max
      dlg.field_enum symbol, label, default, enum_hash
      
      #Showing the dialog box;
      Hash_results = dlg.show hash_initial_values
      
      

      to drop in Skecthup Plugins folder


      Tutorial for Ruby script programmers

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Queston for Fred06 concerning BezierSpline tools

      This is possible, but remember that there is always an issue with the last segment, which cannot be made equal to the others mathematically, unless you changed the End point.

      Also, if your original curve is a Bezier or Spline curve, there are other ways to 'simplify' the curve, by playing with their Precision parameter.

      Attached is a small script BZ__Segmentor.rb, which draws a polyline with a given number of segments. Just drop if in the BZ_DIR folder. I do not provide an icon for it, but the menus should be fine.


      to drop in BZ_DIR folder

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Select all geometry

      @laxmarsk said:

      I am working on a little script that is moving groups or components based on offset values read from a txt file and saving the files again at the new location.

      Script is working but now I want to get things done without having to manually "select all".

      What I meant is that you do not need to select entities to perform your 'move' operations. Sketchup.active_model.active_entitiescontains all the entities of the model, and you can then apply your transformation to this list.

      For instance, if you want to move all objects of the model by an offset offset_vector (which you'll read from a file), then all you have to write is

      
      all_entities = Sketchup.active_model.active_entities   #all entities of the models
      t = Geom;;Transformation.translation offset_vector
      all_entities.transform_entities t, all_entities
      
      

      Now, if your problem is about the selection, Todd's and Didier's code will make it as a Select All.

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Select all geometry

      I guess you need to perform your loop exploration of entities on

      Sketchup.model.active_entities
      

      instead of

      Sketchup.model.selection
      

      This will be thus independent from the selection

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Unicode, UTF8 and Ruby

      @didier bur said:

      Bonjour Fredo,
      Le problème ne vient pas d'un fichier. J'ai des noms de matériaux à récupérer dans un modèle SketchUp, pour les re-exporter vers une feuille Excel. Quand tu récupère le nom d'un matériau pour une face f, f.material renvoie par exemple une chaîne s "béton". Quand tu écris cette chaîne dans le fichier Excel, par exemple fichier.puts(s) tu n'obtiens pas "béton", mais "béton", parce que les caractères accentués sont codés sur 2 octets au lieu d'un. Et Ruby n'a pas de méthode pour convertir de l'UTF8 en Unicode.

      Then, with the explanation from Todd, I understand why I had problem with the dialog boxes, as Windows does support UTF8.

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Unicode, UTF8 and Ruby

      @didier bur said:

      Hi all,
      When I try to retrieve the name of a material (material.display_name) in a script, I have to translate it first with a LanguageHandler object and the materials.strings local file.
      This returns a string, from the prepared $mat_strings I have built with LanguageHandler.
      Of course sometimes french materials names have special characters in them: béton, plâtre, etc.
      When the script sends such strings to an output file, these characters are NOT converted, for instance the string "Matière 1" is output as "Matière 1".

      Didier,

      I am unclear of where are the French strings coming from in your exemple. Is it from a file? or from a constant definition?

      As Gaieus mentioned, in Ruby, it is careful to put a backslashbefore any character which is not straight ASCII, like many accentuated characters.
      So, to define a constant:
      Text = "b\éton"
      and not
      Text = "béton"
      Otherwise you may get an error when loading the script (but not always)

      This also works from and to the Ruby Console
      Now, I don't know what happens when reading and writing from files, as I never tried.
      Could you attach your files so that I try

      Thanks

      Fredo

      PS: The only things I noticed concerns the dialog boxes, where you have a different encoding and decoding of the accentuated characters, which makes the == comparison fail. This seems to be due to the fact that Sketchup uses Windows SDK dialog boxes, which have a different encoding method.

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      Coen

      If you scale uniformly a surface, it will never match the original (think of a sphere for instance). However, this is somehow an approximate way to offset its contour, while preserving the overall shape of the surface.

      With the first method (only offset the borders), you just use the shape of the outer borders and ignore the ones which are inside. So if you offset by a large distance, you will certainly 'dilute' the shape of the surface.

      Both methods have their own benefits and drawbacks, and both can be implemented via a script.

      That's what I meant.

      Fredo

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      Oops...!!
      Updated with correct code in Ruby repository

      Fredo

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      Urgen,

      Very good idea and quite natural in Sketchup.
      I updated the files in the script repository (also with non blurry icons).
      http://www.sketchucation.com/forums/scf/viewtopic.php?f=153&t=6708&p=42783#p42783

      Thanks

      Fredo

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      @jclements said:

      "The editor makes full usage of the Sketchup inference mechanism so that you can
      visually adjust the distance by reference to a particular point in your model, as in most
      Sketchup tools. However, when you drag, you may want to skip some inferences. For
      this, just keep the SHIFT key pressed down, while dragging faces."

      For me, keeping the SHIFT key depressed doesn't appear to do anything. The black triangle at the cursor seems to be inferencing to other geometry. Perhaps I am misinterpreting its usage?

      The black triangle will seem to 'block' on other geometry, but it position will be ignored when you drag the faces. So inference is skipped 'geometrically', but I did not find a way to skip it 'visually'. Hope this answers your question.

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      On offset tool for curved surfaces:

      I am not totally clear on what several of you are targeting. Personally, I see 2 categories of such surface offset tool:

      1. Only offsets the external border edges of the surface. This means for instance that all interior faces are left untouched. This does not exist in native Sketchup but can easily be done by a script. Actually the faces are just there to give the overall contour the planes for offsetting and the direction interior / exterior.
        First method - Offset only the border contour

      2. Deform continuously all faces of the model to accommodate the offset of the contour. In such a case, I think it would always change (even slightly) the shape of the overall surface. The best is probably to Scale the surface in all directions, and then move it to the closest position to fit the original surface. This can also easily be automated by a script.
        Second method - Scale up the whole surface and try to fit to the original surface

      Maybe I lack imagination and there are other forms of surface offset someone would think of!?

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      @unknownuser said:

      that's great.. i like the feel much better than the first one.. it's faster and more intuitive for me..

      a couple of the tool bar icons are showing up blurry.. any idea why?

      I guess you are on Mac.
      No idea of what happens with the PNG files, especially because only 2 of them appears in the 'fog'. They all come from the same source (thanks to Daniel S. who designed them). One idea, make sure you got all 5 icons of the latest version (they are all 24 x 24). The two I designed and published in the initial version were 32x32.

      posted in Plugins
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      @unknownuser said:

      Is it possible for this script to explode the curve after it is run? Or at least segment it into parts. It would cut down on a step if you are trying to erase lines for a cleaner face. See image.

      I put precisely some code to keep curves on the original surface (to be as less destructive as possible). Note however that the generated corresponding contour is not welded as a curve. Is it the situation you have?

      posted in Plugins
      fredo6F
      fredo6
    • RE: Creating a material from an existing one

      @jim said:

      I agree about needing to read or write on the disk in order to accomplish this; however... if you are going to be reading and writing files, why not copy the .skm, load it, and make the adjustments? Either way, it looks as if the best you are going to do is a clunky work-around.

      Well, this is to create programmatically a semi-transparent material from an existing material. This is the only way to build a macro that would show part of the model in Xray (as the View mode of Sketchup applies to the whole model). At the moment, I can do it with color of material, but cannot get the textures to be Xray'ed.

      See discussion thread in the forum at http://www.sketchucation.com/forums/scf/viewtopic.php?f=57&t=6638
      and also in the French section (http://www.sketchucation.com/forums/scf/viewtopic.php?f=51&t=6589&start=0)


      model from Claire

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      @daniel s said:

      Totally Amazing!!
      How can i set for default for Joint, Vector and Normal Push pull in the finishing options "thickening" instead "erase original faces"?? it´s easy with the TAB or F5 keys... but when i restart SketchUp i have to set my defaults again.

      Edit the rb file, line 334, and change @option_finishing = 'D' to @option_finishing = 'K'

      @daniel s said:

      PS. It´s possible to make the plugin work like the SketchUp push/pull? I mean... now you must select at least one face before running the plugin... and after doing the PP you have to select the icon again to PP another face....

      This would only work in single-face push pull (but there would be no difference compared to the Sketchup tool). Because you need to be multi-face, you have to select the faces first. Remember that 2 successive JPP may not be equivalent to a single one on the total set of faces!

      posted in Plugins
      fredo6F
      fredo6
    • RE: Creating a material from an existing one

      @al hart said:

      Did you call tw.write(entity, fname)

      No. My intention is not to export material or even get the JPG file for the texture, but just clone a material within the model, and then change parameters of this new material.

      posted in Developers' Forum
      fredo6F
      fredo6
    • RE: Push Pull Jointif

      J'ai mis une nouvelle version dans la partie Ruby Discussions
      http://www.sketchucation.com/forums/scf/viewtopic.php?f=153&t=6708

      Cette version est plus interactive et fournit un feedback visuel de la deformation.

      Et il y a un bouton Redo pour Pilou

      posted in Français
      fredo6F
      fredo6
    • Joint Push Pull Classic (Old version) - v2.2a - 26 Apr 17

      This is a resurrection of the OLD version of the plugin, published in 2008 and last updated in 2011. It works in all versions of SketchUp and is certified for SU2016 and SU2017. It does NOT require LibFredo6.

      Note: There is a new version of JointPushPull, called JointPushPull Interactive Edition 3.0. It includes new extrusion tools and is more interactive.
      So you should consider migrating to this new version.
      See this post.

      Here is the link to the starting post of this new resurrected plugin.

      http://forums.sketchucation.com/download/file.php?id=49290

      JointPushPull Classic is a script that performs push pull on multiple faces in one operation. Unlike the native Sketchup push-pull tool, JPP Classic can maintain the continuity of the offset surfaces (mode joint push pull). This is useful to thicken non-planar surfaces.
      JPP also includes two additional modes: Vector and Normal working with multiple faces.
      JPP_visual.jpg

      http://forums.sketchucation.com/download/file.php?id=49286

      [attachment=0:3upnsc38]<!-- ia0 -->Tutorial Joint Push Pull Classic - English - v1.1 - 20 Feb 08.pdf<!-- ia0 -->[/attachment:3upnsc38]

      • Language: English, French, Spanish (Defisto), Italian (Defisto / COSEDIMARCO)
      • Menus: by default, it is installed in Tools > Join Push Pull. There is also a Joint Push Pull menu in the selection contextual menu when one or several faces are selected
      • Icon toolbar: Joint Push Pull (5 icons are available)
      • The plugin is free, for private and commercial usage.

      http://forums.sketchucation.com/download/file.php?id=49287

      Although the plugin is obsolete now, this old version is published on the Sketchucation PluginStore under the name JointPushPull Classic.

      IMPORTANT: This version can co-exist with the NEW version JointPushPull Interactive.

      It is advised to

      • install the rbz extension from the Sketchucation PluginStore page for JointPushPull Classic
      • or Auto-install JointPushPull Classic with the ExtensionStore plugin distributed by Sketchucation

      The footprint in the SU Plugins Directory must be:

      • Fredo6_JointPushPullClassic.rb file
      • Fredo6_JointPushPullClassic folder

      In case you had the old JoinPushPull v2.1 already installed on your computer, it is advised to remove:

      • the folder JPP_Dir_21
      • the file jointpushpull.rb
      • the file LibTraductor.rb

      CAUTION: NEVER rename or move files from their folders. If you are unsure of your unzip operation, do it in a neutral folder and check that you reconstruct the right footprint. Then transfer the folders and files to the SU Plugin Directory.

      http://forums.sketchucation.com/download/file.php?id=49288

      • Select one or several objects (faces, edges, groups or components). Only faces are taken into account.
      • Click on the icon of one tool, for instance Joint Push Pull
      • Pick a face and gently move the mouse to visualize the offset in wireframe. Keep SHIFT pressed to skip inferencing
      • You can type the offset value in the VCB (in model units)
      • Type TAB to access options (thickening, continuity parameter, etc…)
      • When OK with the parameters, Double-click or press Return to launch the calculation
      • The calculation cannot be interrupted. On large models, you may thus get a blank screen for the time the script is computing. Do not panic, just wait, it may take several minutes!

      JPP also includes 2 additional buttons:

      • Undo - reselect faces (as precisely the original faces could have been erased)
      • Redo last Push Pull, allowing executing the last push pull on a new set of faces, with the same parameters.

      http://forums.sketchucation.com/download/file.php?id=49289

      version 2.2a - 26 Apr 17: same as version 2.1a but certified for all SU version, including SU2017. Published on PluginStore as JointPushPull Classic

      version 2.0b - 17 Jul 11: same as version 2.0a but with Italian translation. This version does not work beyond SU13.
      Here is the file, just in case

      See [url=http:http://forums.sketchucation.com/viewtopic.php?f=323&t=6708&p=342359#p342359]http:http:http:http:http:http:http:http:http:http:http:http:http:http:this illustration[/url].

      version 2.0a - 16 Jul 11: refix a bug signaled by Thomthom for some complex shapes (typically with vertices having 5 edges or more). Version 1.9 had some problems left.

      version 1.9a - 12 Jul 11: fix a bug signaled by Thomthom for some complex shapes (typically with vertices having 5 edges or more).

      version 1.8a - 01 May 11: Better respect of specified distance now working when doing a Joint Push Pull with an imposed plane direction. See discussion in [url=http:http://forums.sketchucation.com/viewtopic.php?f=15&t=36403&view=unread#p325069]http:http:http:http:http:http:http:http:http:http:http:http:http:http:this thread[/url].
      Here is the previous version, just in case

      version 1.7a - 25 Apr 11: Fix a major bug (causing a freeze of SU in some situations).

      version 1.6 - 22 Apr 11: Updated the algorithm to better respect the value of the offset when the surface is composed of sharp angles. THIS VERSION HAD A FREEZE PROBLEM.

      version 1.5 - 02 Sep 10: maintenance release for SU8

      • Suppress some warning (though harmless) messages in the Ruby console
      • JPP now installs itself as an extension of Sketchup (can be disabled / enabled via the Windows > Preferences > Extension dialog
      • Spanish translation - Thanks to Defisto

      12 Jun 10: stable version, with encapsulation of calculation to skip some known problems on texturing.


      Tutorial Joint Push Pull - English - v1.1 - 20 Feb 08.pdf

      posted in Plugins
      fredo6F
      fredo6
    • RE: Creating a material from an existing one

      @al hart said:

      1. If you examine the .SKM file, you will discover that it is a zip file with the material stored in it. So if you have a way to read the zip file from Ruby, you can access it.

      This is good to know, but it would be rather convoluted, especially for the objective I research which is just a script to put the selection in Xray, while the rest of the model is unchanged.

      @al hart said:

      1. Another way we get the texture is to assign the material to a face or image and use TextureWriter to write the textures to a file. (If it is a "distorted" texture, it will not write the original texture, but rather the texture as it appears on the face.)

      I played with the Texturewriter of course, with a Load from a face, but the method filenamedoes not even return anything!

      Actually, the question is not really to get the texture, but to create a material as a clone of another one, and then change some parameters(in my case the transparency via the Alpha method). You can do all this with the User Interface of the Sketchup paint bucket, but apparently the Ruby API is far behind.

      Thanks for your help.

      posted in Developers' Forum
      fredo6F
      fredo6
    • Creating a material from an existing one

      Is this possible?
      I did not find anything in the Ruby doc about how to do that.

      What I have found is that:

      • You can create a new material by name
      • you can only assign a texture to the material by filename (it has to be a JPG)
      • However, with SU v6, the JPG is not available as a file but embedded is the SKM file of the material

      Thanks

      Fredo

      posted in Developers' Forum
      fredo6F
      fredo6
    • 1
    • 2
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 264 / 268