• Login
sketchucation logo sketchucation
  • Login
ℹ️ GoFundMe | Our friend Gus Robatto needs some help in a challenging time Learn More

Engraved sign maker, technique, or plugin

Scheduled Pinned Locked Moved Plugins
51 Posts 8 Posters 6.7k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    Dan Rathbun
    last edited by 16 Mar 2012, 20:57

    @dave r said:

    I was just trying to illustrate my original point that the center of the component's bounding box may not be the best reference point for placing 3D text.

    I totally agree with you on this point Dave !

    @tspco said:

    Dan, as far as I know you cannot use different letter heights in the text box.
    For example TSPCo (my company) is in a two foot height. And Conceptual Design (a division)is in 1 foot high letters. So maybe an ability to use different height letters in the 3D text dialog, is all I want. That may be easier.

    Ok.. now I understand your needs ...

    OK so add 3 more 3DText feature requests:
    (e) font per line
    (f) height per line
    (g) line spacing per line

    I'm not here much anymore.

    1 Reply Last reply Reply Quote 0
    • T Offline
      tspco
      last edited by 16 Mar 2012, 22:58

      Dave these signs are 3"x8", based on what is available on a couple of webpages that sell such things.

      Dan, yup that pretty much nails it, if such a feature was implemented, even as an extension that can be turned "on" at the users discretion, like the sandbox tools.

      SU make 2017, /Twilight Render Hobby
      Windows 10,64 bit,16GB ram, quad core Athlon 3.6 gHz proc. Anything else you want to know, ask me.

      1 Reply Last reply Reply Quote 0
      • D Offline
        Dan Rathbun
        last edited by 16 Mar 2012, 23:24

        @tspco said:

        Dave these signs are 3"x8", based on what is available on a couple of webpages that sell such things.

        Well since the invention of the FlowJet making signs like this should be much less expensive than the old router engraved signs.

        The flowjet would cut out the top layer in a fraction of the time that a router could engrave them.
        Then the cut out layer is glued (or fastened with hardware,) to a backing layer.

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • S Offline
          sdmitch
          last edited by 21 Mar 2012, 14:36

          After working on a plugin to satisfy this request, the three things that .add_3d_text needs most is

          1. A text alignment that really means something as this video demonstrates.
            [flash=640,480:1oeov0o2]http://www.youtube.com/v/UmZZfMXefiQ[/flash:1oeov0o2]

          2. A parameter to locate the origin of the text rather than always being created
            at the model ORIGIN.

          3. A parameter to define the normal of the text rather than always [0,0,1].

          Nothing is worthless, it can always be used as a bad example.

          http://sdmitch.blogspot.com/

          1 Reply Last reply Reply Quote 0
          • D Offline
            Dan Rathbun
            last edited by 21 Mar 2012, 15:14

            Well to mimic the native tool...

            you first create an empty group (so you have a reference,)

            Then you add the 3dtext to that group's entities (not the model's)...

            ... then you transform that group, translation, rotation, etc.

            or.. set the selection set to only the textgroup, and call the MoveTool with Sketchup.send_action()

            I'm not here much anymore.

            1 Reply Last reply Reply Quote 0
            • T Offline
              TIG Moderator
              last edited by 21 Mar 2012, 15:25

              The 3d text alignment argument only works on 'multi-line' strings (adding "\n" in the string will do this for you) then the lines are arranged left/right/center; otherwise a single line is just that.

              If you add the 3d text inside a group or component-definition instance then it's straight forward to find its bounds.center, to convert that to to the bottom face use
              cpt=group.bounds.center; cpt.z=group.bounds.min.z
              OR .max.z for the 'top'.
              Or any other point on the bounds [left/right/center etc]...
              Once you have this you can get the translation vector to the required insertion point and transform! the group to suit. If you want the group's axes to be say central you can transform all of the group.entities en mass by the translation transformation so they are centered at the origin and then do the translation to the required insertion point...

              If you add the 3d text inside a group or component-definition instance then it's straightforward to transform-rotate it in 3d so that its 'normal' [blue/Z axis] faces any direction you desire...

              So for the last two your custom 3d text tool spec can include all of the required options, plus an insertion point and a 'normal'.

              The way I do this with 2dText or AreaTag is to make it a component instance and glue it to a face, so the normal is set from the face, the picked point sets the location...

              TIG

              1 Reply Last reply Reply Quote 0
              • S Offline
                sdmitch
                last edited by 21 Mar 2012, 15:53

                Dan,TIG

                Adding the 3d_text to a group is what I finally did and, as you suggest, I used the group.bounds.center and face.bounds.center to create the translation transformation. That worked great on horizontal faces. In order to get it to work on inclined or vertical faces, I had to convert the group to a component where I could use the face.bounds.center and the face.normal to define the transformation for adding the instance.

                A funny thing about the multi-line text input. Adding the '\n' to the string worked in the web console but, when I entered the same text into the inputbox, it was made part of the text.

                Nothing is worthless, it can always be used as a bad example.

                http://sdmitch.blogspot.com/

                1 Reply Last reply Reply Quote 0
                • T Offline
                  TIG Moderator
                  last edited by 21 Mar 2012, 16:45

                  The \n must be inside "", because inside '' it is read literally.

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdmitch
                    last edited by 21 Mar 2012, 17:35

                    @tig said:

                    The \n must be inside "", because inside '' it is read literally.

                    Well maybe it's me but I have used no quotes, single quotes, and double quotes along with .to_s and without when assigning the string to a variable and the results is always the same. Everything in the inputbox is treated as a single text string.

                    Nothing is worthless, it can always be used as a bad example.

                    http://sdmitch.blogspot.com/

                    1 Reply Last reply Reply Quote 0
                    • T Offline
                      TIG Moderator
                      last edited by 21 Mar 2012, 19:40

                      You MUST use text.gsub!(/\\n/,"\n") to convert any '\n' in a string that has been passed from a dialog to include a true 'newline' in the string that you subsequently pass to 3d_text... perhaps this is the issue. 😕

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        sdmitch
                        last edited by 21 Mar 2012, 21:04

                        TIG, Thanks for the tip. That works! The gsub function remains a mystery to me.

                        Nothing is worthless, it can always be used as a bad example.

                        http://sdmitch.blogspot.com/

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          Dan Rathbun
                          last edited by 21 Mar 2012, 23:28

                          @sdmitch said:

                          The gsub function remains a mystery to me.

                          The "sub" stands for 'substitute' and there is a sub() method also (but it only makes one substitution.)

                          Not sure what the "g" stands for.. 'global' perhaps ?? (it makes makes as many substitutions as it can.)

                          Link Preview Image
                          Class: String (Ruby 1.8.6)

                          Class : String - Ruby 1.8.6

                          favicon

                          (www.ruby-doc.org)

                          I'm not here much anymore.

                          1 Reply Last reply Reply Quote 0
                          • S Offline
                            snoyes
                            last edited by 11 Oct 2016, 16:24

                            Back to the original question of how to engrave text: if you have the Pro version, the solid tools make combining the 3D Text component and the rest of the model easy.

                            For the rest of us, a few lines of Ruby make it easier to select all those faces and fill in the missing holes. See http://www.instructables.com/id/Engrave-3D-Text-With-Sketchup/

                            1 Reply Last reply Reply Quote 0
                            • 1
                            • 2
                            • 3
                            • 3 / 3
                            • First post
                              Last post
                            Buy SketchPlus
                            Buy SUbD
                            Buy WrapR
                            Buy eBook
                            Buy Modelur
                            Buy Vertex Tools
                            Buy SketchCuisine
                            Buy FormFonts

                            Advertisement