The zip JAR's weren't working on one of my machines - either because Java is not installed - or because the JAR extension is being grabbed be Firefox.
We decided to include 7zip instead and use it for zip.
The zip JAR's weren't working on one of my machines - either because Java is not installed - or because the JAR extension is being grabbed be Firefox.
We decided to include 7zip instead and use it for zip.
TIG
We were able to use the import and export stuff from SKM for our Material Schemes project.
We really appreciated the saving and loading of attributes, since the last time we checked (years ago), SketchUp was not reloading attributes properly when you save a material library and then placed the material in another library.
Material Names
Another relatively simple, but important change we made was to be able to import a material, specifying a name, and have it overwrite the material with that name if it already existed. The "secret" to this was to "escape" special characters in the material name with %XX, (the hex equivalent or the character), rather than replacing them all with underscore. Then we are able to determine the original name of the material in the model from the name of the saved .SKM file.
So a library material with a name like [Stone_Masonry_Multi] is saved into a SKM file with the name: %5BStone_Masonry_Multi%5D.skm, and we can then "unescape" the name back to [Stone_Masonry_Multi] when we import it.
Material Schemes
The whole idea of material schemes is to save .SKM files for all the materials in your model into a ZIP file (e.g. Light-Blue.scheme), then to modify the materials without changing the names, save another scheme and be able to load either scheme back into the model or into other models.
TIG,
I see that the SKM stuff tries to store its temporary files in the install folder (typically the Plugins folder.)
Have you had any problems with Windows 8, etc. which make it harder and harder for Apps to write to Program Files.
Thanks Dan (and TIG).
We will give this a try.
Al
I asked this same question about 5 years ago but didn't find a solution:
http://sketchucation.com/forums/viewtopic.php?f=180&t=9598&hilit=material#p60141
But maybe things have changed since then.
Has anyone done anything to work with SKM materials directly from Ruby.
In particular - saving a material from the current model, or loading a material into the current model?
We're thinking of writing a Ruby Extension to save all the materials in a model into a single ZIP file (called a Material Scheme) and have a way to reload it into the same model or a different model.
The idea is to let you save several color and texture schemes for a model, and be able to quickly reload them. For example, you may want to present multiple color schemes to a client, and be able to change the model and quickly re-apply the color schemes.
Using Material Schemes
If you give your materials generic names - such as Fabric Panel 1, Chair Seat 3, Back Wall, then if you change the material color, texture, etc. using the material editor (rather than dropping new materials onto the objects). Then Material Schemes will let you save and reload different color and texture schemes into the model
Will not reload materials with different names
If there is an object in the model with a material called, for example, Red, and you save the Material Scheme and then change the name of the Material on the object to Brick, then it will not re-load the saved material Red onto the same object.
Has this been done already?
Is this a good idea and/or has someone done it already?
There are a few basic approaches being used.
The simplest thing to do is to make the glass in the window the color of the desired color, and then shine the sun through it.
Most people, such as this example using Maxwell, added "Caustics" to the reflective properties of the glass. Caustics causes light passing through the glass to distort. (I you are reading while drinking some wine, this look at the shadow f you wine glass on the table. The caustics cause the interesting shadows.
For the IRender nXt exmample, I also added smoke/haze to the room, so you see the beams of light passing through it.

@thomthom said:
Thanks, ThomThom, that looks like what I am looking for.
I see you had posted it before, but I didn't know what it was at the time.
We had about the same experience as ThomThom.
Calling ruby functions from C-code was slower than calling them from ruby directly in SketchUp.
e.g. The C-code replacement for:
value = model.get_attribute “dictionaryname”, key, defaultvalue)
can be done directly, (actually rather indirectly), from C-code, but the execution time is slower than in SketchUp ruby.
But other things, such as maintaining a table for vertices, and then doing special processing for vertices was faster.
Also, we were able to use Windows dialogs, functions in other Windows DLLS, etc. and attach them to SketchUp.
Also, we were able to use all the Ruby stuff from C++ because ruby\1.8\i386-mswin32\ruby.h, (part of the ruby code), includes
#if defined(__cplusplus)
extern "C" {
#endif
Back to the original question.
Has anyone interfaced to C routines from the Mac, and if so could you share a sample of some sort to get us started...
@slbaumgartner said:
It would require a significant rewrite to get this over to the Mac; no doubt feasible, but way out of my depth!
Steve
Exactly what I am looking for - a Mac expert, or at least someone who is more familiar with Mac than I, who has done this already for SimpleExtension, or has created a C-code to SketchUp ruby interface which does something similar, or who can easily figure out how to write a Ruby Extension, based on SketchUp's Simple Extension, and could share it with us.
You can download a copy from here:
It has a read me file, and with a little work to get it to work, it actually works.
(You have to have Ruby installed on you own machine when you compile and link it, for example)
SketchUp sent it to me about 6 years ago, and although they don't publish or support it, they did give me permission to pass it on to others.
You might have a lot of fun with it.
You can create functions in C++ and call them directly from SketchUp.
You can create ruby classes in C++ and access them from SketchUp
You can call your own SketchUp functions from C++
and you can access the SketchUp ruby classes directly from C++:
For example, this code, although it is more complex to write in C then in Ruby, gets the value of SketchUp.active_model.rendering_options["ModelTransparency"] directly from the C-code
Sketchup = rb.find_class("Sketchup");
model = rb.run_func0(Sketchup, "active_model");
member = rb_intern("[]");
rendering_options = rb.run_func0(model, "rendering_options");
options_value = rb_funcall(rendering_options, member,1, rb.CString_to_value("ModelTransparency"));
bir_skp_xray_mode = rb.value_to_bool(options_value);
If you get stuck getting it to work in Windows, I can help. But I could sure use some help from someone who knows more about compiling, etc. on the Mac than I do to get a version running for the Mac
I am referring to the old C++ "Simple Extension" from several years ago.
But we would rather start the Mac project with the latest and greatest.
Is there something new, (e.g. new C API) which can be used to integrate C-code with SketchUp Ruby? If so, please point us in the proper direction.
Thanks,
Al
We interface C-code to SketchUp Ruby in Windows using "Simple Extension" which was provided by SketchUp several years ago.
We are starting on a project to convert some of our C-code interface to the Mac.
Does anyone have Simple Extension, or a similar C-interface prototype working on the Mac which they could share with us. (And, hopefully, instructions on to compile and link it to SketchUp)
I am pretty sure they both point to the same place:
The ones I uploaded should work - they just have funny names.
I found and uploaded the original file arroway.zip to
However, it seems to have the "double" file names.
Gaieus, or anyone else, if you have a copy of the file with the corrected file names, send it to me (a 24 meg email is no problem), and I will upload it instead. (al.hart AT renderplus.com)
SketchUp 2013 has been released
The Free version of SketchUp has been renamed to SketchUp Make and is no longer available for Commercial Use.
SketchUp Pro is for Commercial Use
Render Plus Add-ons
To use IRender nXt, ArielVision, or other Render Plus Add-ons with SketchUp 2013, you will need to download the latest version from:
It will automatically install into the new SketchUp Plugins folder.
Older Versions and other Add-ons
If your license is over 12 months old, you will need to renew it in order to download and use the latest version with SketchUp 2013.
See: Renewals
If you do not renew your license and have a an older version you want to use, or for any Add-on which does not have a new version on the Download Page (ME17 or later), you can copy things from the SketchUp 7 or SketchUp 8 Plugins folder to the new Plugins folder:
Probably C:\Program Files (x86)\Google\Google SketchUp 8\Plugins, or
C:\Program Files\Google\Google SketchUp 8\Plugins
Probably C:\Program Files (x86)\SketchUp\SketchUp 2013\Plugins
or C:\Program Files\SketchUp\SketchUp 2013\Plugins
Copy the entire Render Plus subfolder to the new Plugins page:
Copy the .rb files for any add-on you want to copy over:
ArielVision_loader.rb
IRender_Nxt_loader.rb
NprTools_loader.rb
Rp3DPdf_loader.rb
RpTools_loader.rbRpTreeMaker_loader.rb
RpWallMaker_loader.rb
SpaceDesign_loader.rb
If anything does not work, please add a thread to our Forum so we can fix it up.
Rich Hart has been working with Paul Guillow to create 3D PDFs based on Paul's airplane models.

A 3D PDF lets visitors to Paul's website spin, pan and zoom on the airplane modes to check them out.
One thing Rich added to the interactive PDF for Paul was a Purchase Button which takes you to Paul's website: http://www.guillow.com to buy the planes. I was so excited I ordered some for everyone in the office and some more for my grandson. What Fun!
Want to use SketchUp and 3D PDF for you own marketing? Click here to learn more: RPS 3D PDF
IRender nXt 5.0 - Make great renders, faster.

Render Plus systems announces the release of IRender nXt 5.0 for Trimble SketchUp.
IRender nXt 5.0 makes it easier for designers to build render-ready SketchUp models and quickly fine-tune render settings. Version 5.0 is all about improving the rendering workflow and adding simple, powerful controls for important render settings. IRender nXt Version 5.0 helps you make great renders, faster.
IRender nXt 5.0 - Feature Highlights
IRender Ready Lights, Mirrors, and Trees

A Trimble 3D Warehouse collection of objects, such as light fixtures, which have lights placed in them so they can be used directly with IRender.
Rotate View While Rendering

Let’s you change the view, pan and zoom after rendering and re-render without having to change the view in SketchUp.
Background / Layer Wizard

Making it easy to position your rendered model in a background and retrieve the settings for future renderings.
Even More in 5.0
IRender nXt 5.0 is loaded with another 10 new features that include that can improve your rendering workflow and keep important render settings at your finger tips.
Download, Purchase or Renew.
The release is free if you have purchased IRender nXt within the past 12 months. Download it now. If your license has expired, now is the time to PURCHASE or UPGRADE to IRender nXt 5.0.
Check out the Render Plus blog for all the details on IRender nXt 5.0
On another forum (for AutoCAD), users noticed that the AutoCAD version only works with AutoCAD 2013.
We will make our version work at least as far back as AutoCAD 2012.