sketchucation logo sketchucation
    • 登入
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Hatchfaces (v1.8 beta) UPDATED 15-Dec-2012

    已排程 已置頂 已鎖定 已移動 Plugins
    360 貼文 41 Posters 228.5k 瀏覽 41 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • jolranJ 離線
      jolran
      最後由 編輯

      Not noow Kato!! 👊 😄

      I don't understand Sergey. Do you want line weight? That is only possible
      through styles in Sketchup. But it's a global feature. I am afraid I can't do anything about that. Maybe if thin rectangles are grouped with materials
      like TIG,s dashed lines. But that is further on in developement.

      Look at my last minitut for an example how you can use differnt styles, with edge profiles for ex.

      Thanks for input Sergey! MUST CODE ON!! 👍

      And yes TIG. I'm trying! 🎉

      1 條回覆 最後回覆 回覆 引用 0
      • jolranJ 離線
        jolran
        最後由 編輯

        This code gives me a face with holes. If I stop after this code.
        But cannot Hatch faces with holes in full script.
        Get an error 😕
        Normal (square faces) works fine in full script with the changed code, strange enough.

        gp.layer=hatch_layer    # group to Hatching layer
              gp.name=name
              gents=gp.entities
              faces2go=[]
              face.loops.each{|loop|gents.add_face(loop.vertices)}
              
              gents.each{|face| 
              next if face.class!=Sketchup;;Face     
              face.edges.each{|e|
              if not e.faces[1]
              break
              end
              faces2go << face
          }
        }
         
         gents.erase_entities(faces2go)                #erase the faces in the holes 
        
        1 條回覆 最後回覆 回覆 引用 0
        • TIGT 離線
          TIG Moderator
          最後由 編輯

          Why not?
          How are you hatching?
          Stop at each stage with a temporary 'return nil' and see what you get or error messages etc... 😕

          TIG

          1 條回覆 最後回覆 回覆 引用 0
          • L 離線
            linea
            最後由 編輯

            Tig this is brilliant, wanted this for so long.

            1 條回覆 最後回覆 回覆 引用 0
            • S 離線
              sergey2402
              最後由 編輯

              Whether not too much I want? 😳


              hatching01.jpg

              1 條回覆 最後回覆 回覆 引用 0
              • K 離線
                kyyu
                最後由 編輯

                jolran, a few suggests for you to consider.

                1. Seperate out the code that draws the line pattern, into it's own method. That will make your main program simpler to understand. It will look more like an outline. Check out my later example code snippet. I just premade the line pattern, by hand, which would represent simply calling a method to make it. Also, you can reuse the draw_lines method, say if you want to draw a 2nd set in the criss cross direction.

                2. Might want to consider a rethink. The program will become more complicated, if you just keep adding stuff on top of exsiting. Here's a possible new way, shown below. And the way I test stuff quickly, is to use the "Ruby Web Console" plugin by Jim Foltz. I often check parts of my program, like this, as snippets of code; before adding it to the plugin. You simply undo <ctrl+z>, change the line(s) of code and execute the code again, by hitting the "eval button".

                #This snippet puts the face,lines & hatch into 3 seperate groups.  Face is simply grouped, not copied.
                #The "lines" group is premade and named "lines", so the script can find it.
                #You need to select the face, before running script
                #No need to delete seperate edges, just delete the lines group when done.
                model = Sketchup.active_model
                ent = model.entities
                sel = model.selection
                f = sel[0]
                face = ent.add_group(f)
                lines = (ent.to_a.select {|e| e.is_a?(Sketchup;;Group) and e.name=="lines"})[0]
                puts lines
                hatch = ent.add_group
                hent=hatch.entities; lent=lines.entities; fent=face.entities
                htr=hatch.transformation; ltr=lines.transformation; ftr=face.transformation
                fent.intersect_with(true, ftr, hent, htr, false, lines)
                lines.erase!
                face.explode
                

                Snippet of code and model set up to run
                ![After pressing "eval" button](/uploads/imported_attachments/Hdko_test_hatch_rwc_after.png "After pressing "eval" button")
                test_hatch_RubyWebConsole.skp

                1 條回覆 最後回覆 回覆 引用 0
                • J 離線
                  Jim
                  最後由 編輯

                  This is very useful, jolran. Thanks for making it happen.

                  Hi

                  1 條回覆 最後回覆 回覆 引用 0
                  • K 離線
                    kaas
                    最後由 編輯

                    wonderful!! This kind of plugin (hopefully someday with some extra hatch options) is really what I was missing in SU.

                    Many thanks to those involved!

                    1 條回覆 最後回覆 回覆 引用 0
                    • jolranJ 離線
                      jolran
                      最後由 編輯

                      Sergey, thanks for your suggestions 👍 I will probably go for something like the picture, first time around.
                      Unless I'm wrong you have to use webdialog for checkboxes, and I'll put that on hold for now.
                      More important issues to deal with first.

                      Hi Kyyu. Many thanks for your input and experimenting. Really appreciate it 👍
                      I got a strong impression from reading this forum, that making groupes from selection is a bad choice? 😕
                      Thats why I neglected my original idea and went for TIG's "face.clone iterating stuff". Don't you get splats doing it like that? Have you tried this inside a group? I got constant splats doing almost exactly as you did.

                      However grouping the edges before doing an intersect_with might be a good idea. That might actually be an easier method than iteration the edges for erasing? Depends on how "splat-prone" the method is.

                      About separating to 3 groups. Don't know if that is necessary? Doesent it suffice to add the hatches to a new layer? (Which is already implemented in my current code). This grouping In my opinion does no good for the workflow. Need more feedback about that, please 😄

                      @unknownuser said:

                      Seperate out the code that draws the line pattern, into it's own method

                      Yeah, I know code's a bit messy, but doing a second hatching that is probably a must anyway.
                      I'm using AS ruby code editor. It's the same as Jim's no?

                      Thank you Jim and Kaas! And TIG's been helping me a LOT, that goes without saying.


                      cross_menu.jpg

                      1 條回覆 最後回覆 回覆 引用 0
                      • jolranJ 離線
                        jolran
                        最後由 編輯

                        YES!!!! Faces with holes are hatching now. Will update tomorrow, hopefully.

                        Stupid newbie-mistake. I did not create "@face" object. So for ex bb=face.bounds
                        did not have anything to refer to since face was in Faces2go's scope. At least that is what I think happend. 😄

                        Will test more before I celebrate too much...

                        Sorry TIG, I missed your post from yesterday. I wasent using return nil. I used =begin and =end. That works equally good?

                        1 條回覆 最後回覆 回覆 引用 0
                        • jolranJ 離線
                          jolran
                          最後由 編輯

                          Testing.


                          holes.jpg

                          1 條回覆 最後回覆 回覆 引用 0
                          • Bob JamesB 離線
                            Bob James
                            最後由 編輯

                            Looking Good 👍

                            i7-4930K 3.4Ghz, 2x GTX780 6GB, 32GB DDR3-1600 ECC, OCZ Vertex 4 500GB, WD Black 3TB, 32TB NAS, 4x 27" Monitors, SpaceMouse Pro, X-keys XK-60

                            1 條回覆 最後回覆 回覆 引用 0
                            • K 離線
                              kyyu
                              最後由 編輯

                              Sorry, disregard, was trying to edit the previous post.

                              1 條回覆 最後回覆 回覆 引用 0
                              • S 離線
                                sergey2402
                                最後由 編輯

                                @jolran said:

                                YES!!!! Faces with holes are hatching now. Will update tomorrow, hopefully.

                                So when will come tomorrow? I am looking forward!
                                I am sure - in the new version of SketchUp this plugin should become a standard feature.

                                1 條回覆 最後回覆 回覆 引用 0
                                • K 離線
                                  kyyu
                                  最後由 編輯

                                  jolran, looks like you got it working well. 👍 So no need to change anything. I will answer the questions, anyways.

                                  @unknownuser said:

                                  Hi Kyyu. Many thanks for your input and experimenting. Really appreciate it
                                  I got a strong impression from reading this forum, that making groupes from selection is a bad choice?
                                  Thats why I neglected my original idea and went for TIG's "face.clone iterating stuff". Don't you get splats doing it like that? Have you tried this inside a group? I got constant splats doing almost exactly as you did.

                                  However grouping the edges before doing an intersect_with might be a good idea. That might actually be an easier method than iteration the edges for erasing? Depends on how "splat-prone" the method is.

                                  Yes, it's to be avoided. But you can do it, under certain circumstances. Grouping loose geometry is ok, especially a single edge or face. In my example, I grouped a face at the very beginning. And it do it, just once. I've written plugins, like this, before. You can't do it what an entitiy, already inside a group. I'm assuming it has to be in the current active_entities.

                                  If, I am just testing a quick snippet of code, I certainly will just group the face instead of writing a bunch of lines to clone it.

                                  You only need to consider doing all this, if you didn't make the entitiy. If you want your lines in a group, then you would make an empty group 1st, and then create the lines directly in the group (gents.add_line instead of ents.add_line).

                                  @unknownuser said:

                                  About separating to 3 groups. Don't know if that is necessary? Doesent it suffice to add the hatches to a new layer? (Which is already implemented in my current code). This grouping In my opinion does no good for the workflow. Need more feedback about that, please

                                  It all depends on how you are doing stuff. My thoughts on 3 groups is as follows: Group1 is your cloned face group. If you decide to group your line pattern, then that's group2. When you use intersec_with, you can choose where the new lines go. You can't put them in group1 or group2. They would merge and you have to clean them up. So you put them in group3. Then you only need to delete group1 & group2. No need to find and delete any edges. That's what my example does. Except, I just explode group1, becasue I don't make a clone.

                                  @unknownuser said:

                                  I'm using AS ruby code editor. It's the same as Jim's no?

                                  Should be the same. Just suggesting an editor that can execute the code, if you aren't using one. I use Notepad++ for that and reload using Jim's Ruby Toolbar. But Jim's Ruby Web Console does the undo automatically. And very easy to test small bits of code. I still use his older version.

                                  -Kwok

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • S 離線
                                    sergey2402
                                    最後由 編輯

                                    Looking to the future, I regret to foresee, this plugin will be not freeware.

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • Rich O BrienR 離線
                                      Rich O Brien Moderator
                                      最後由 編輯

                                      Do you have a crystal ball or some sixth sense? Will I be able to cut the grass tomorrow or will it rain?

                                      Download the free D'oh Book for SketchUp 📖

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • S 離線
                                        sergey2402
                                        最後由 編輯

                                        @unknownuser said:

                                        Do you have a crystal ball or some sixth sense?

                                        The really good thing can not be free. It understandable without a crystal ball and without sixth sense. 😉

                                        @unknownuser said:

                                        Will I be able to cut the grass tomorrow or will it rain?

                                        Good question, but a great pity to spend my magical powers to answer it. 😎

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • jolranJ 離線
                                          jolran
                                          最後由 編輯

                                          Ver 1.3 added!

                                          Hole "issue" should work. At least it does for me..

                                          Note. Crosshatching does NOT work yet. Only menu items has been added. Layer Hatching now gets made with hatching in it.

                                          What say you about choice of keeping Face and being able to add material?

                                          This version needs to be tested. Have not recieved feedback from TIG about this update, and that makes me nervous 😄

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • jolranJ 離線
                                            jolran
                                            最後由 編輯

                                            Kyyu! Thank you so much for your detailed explanation. Now I understand better. Much apreciated.
                                            I think your intersect method is worth experimenting with for upcoming features. And or what features is possible.

                                            @unknownuser said:

                                            this plugin will be not freeware

                                            No one in here needs to worry this will become a comersial plugin.

                                            Yes, of course I need to make money. But I have gotten so much help from TIG and Kyyu, Jim and others, so going comers. would be HIGHLY unethical! If even legal? This is a great learning experience for me, and I will try too remain humble and listen to
                                            advice and suggestions being made.

                                            @unknownuser said:

                                            in the new version of SketchUp this plugin should become a standard feature

                                            Hatches, yes. So this work might be for nothing 😄 Although, it is possible only Layout will be the program that get hatches.

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 17
                                            • 18
                                            • 3 / 18
                                            • 第一個貼文
                                              最後的貼文
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement