Convex curves - back face - matching mapping position

I am having a real issue trying to get a convex curve with a proper material mapping or “position” on it. All element were drawn elsewhere and imported into Sketchup. It boils down to a curved plane with a front and back side. I cannot get the backside to be correct because Sketchup will not let me select multiple faces and change the position of the material on it ?
Is there a way to join all this faces someway to make them act as one element ?
Or is there a command that that will copy the material position from one element to another ?
Thanks in advance

One fast way is to use projected textures (with a little bit distortion):

Yes, the plane already has a projected map on it, if you notice the concave side has it already, I want the backside to have the same as the front. The concave side is actually as you would see the material on the convex side. Ultimately this will fixed via Ruby script. Since Sketchup has a front AND back element to every face, when imported from another program, only the front face will get the material & material position attached, leaving the backface in limbo. I can via Ruby script make the backface of every face (which I have have done already) match the front face material. I need to know how to also match the front face material position to the backface material position.

I will ask the original question again, is there any command that will combine a series of non-coplanar faces into one element that will allow the “position texture” flyout command to magically appear upon right clicking on the element ?

Hold off on responses, I think I just figured it out, I can retrieve the material position on a face per face basis from the front face, then apply it to the back face of that front face. I will give it a try.

If you can get the material positioned correctly on one FACE (not surface, turn on hidden geometries to select faces), then you might be able to use the eye dropper tool to sample and apply the material to adjacent faces. As long as the material is not set to be projected and you are applying to adjacent faces and as long as the faces are all facing the same direction, this might work.

It is not a magic script, but it gets the trick done. Also, once the image is placed, you can edit it in Photoshop and it will update in-place in the model. No need to re-import or re-position.

– matt

So this is a developer question about Ruby? Why not say this or choose the right category?

Thanks for the info, when you have 30 to 40 to deal with, It’s impractical to do it manually. If I can get this code to work, that will be 100% me not having to do anything in Sketchup except setting up the views. 2 large AutoCAD lisp routines, one of which writes a Ruby script, 1 3dsMax script that also writes a Ruby script, and this 2nd 3dsMax script that will also write a Ruby script, and the entire process will be complete.
Form AutoCAD to Sketchup via 3dsMax with materials, material mapping(positioning), & layers in a few clicks.

It wasn’t a script question, it was a procedural question. I would have taken that procedure, if there was one, and applied it to a script. So this is the right catagory. I didn’t ask anything about code.


Have you looked into the Ruby script called SketchUV I believe it will allow you to map the texture the way you want. I dont have much experience with mapping textures but based on its videos, I was pretty successful.

SketchUV_Result.skp (244.4 KB)


1 Like

All I can say is WOW. As I am learning the Ruby script aspect of Sketchup, I am quickly realizing that there is a tremendous amount of things and options you can do via script only, why aren’t these things part of the actual Sketchup command system ? It’s like they said, well we will only include this or that in the menu for people to use, the rest of the stuff you have to be a programmer, I never encountered a program like that, wouldn’t you want to show off what your program can do ?

Since day 1, we have passionately protected the simple yet powerful interface and functionality SketchUp provides. This way, SketchUp can still be usable for most anyone who picks it up. It is the simple intuitive nature of SketchUp that has made it so popular and powerful.

Often, adding functionality also adds complexity and confusion especially for those who may not need the features. The creation of extensions help fill this gap. We dont expect everyone to become script writers but instead script consumers and thanks to the wonderful and ever growing SketchUp development community, specialty tools like SketchUV, have helped extend the functionality of SU into specialised workflows.

We will continue to advance SketchUp with new features and system improvements but we will also embrace the notion of SketchUp as a platform for others to build on. We think both will be a big win for users.

Explore all that is the SketchUp ecosystem and keep on modeling :smile:


1 Like

It is not that SketchUp “locks functionality away” from the user (they are rather opening functionality that previously wasn’t accessible at all, not even for developers).

Imagine that there could be infinite things that users could want to do. There could be infinite features that do different things, some maybe similar but in a different way. This all can not fit into a simple user interface. If you would want to be able to do via menus all what plugins do, you would end up with something like this:
Active Model → Selected Face → Copy Texture Coordinates
[Meanwhile you take your calculator and a math book and multiply some numbers.]
Active Model → Selected Face → Neighbouring Face → Paste Texture Coordinates
You see, many operations can not be represented as menus (not to imagine a menu to repeat this steps for all remaining faces). This “imaginary” menu looks already like a formalized language. And as the Ruby API, it is part of SketchUp’s command system.

Unfortunately we aren’t yet so far that we can tell commands to computers in a more natural language:
“In this active model, I want to get the first selected face and copy the texture position to the neighbouring face so that it aligns with the first face.”