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
      最後由 編輯

      Ver 1.2 zip added at first post.

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

        Yeeyy!!! It works now!

        I had to think a little bit 😄 Where some typos(I hope I did not destroy anything ❓ )

        Anyway it works. Will post update soon..

        gents.to_a.each{|e|e.erase! if e.valid? and e.class==Sketchup;;Edge and e.faces.length==0}
              edges2go=[]
              gents.each{|e|edges2go << e if e.class==Sketchup;;Edge and not e.faces[1]}
              gents.erase_entities(edges2go)
        

        Thanks to TIG this plugin gets updated once more 😄

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

          Well done! You are doing greatly desired work!
          I really, really like it.

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

            Why thank you 😳 But I really think you should thank TIG and Kyuu.

            Feel free to ask for ways to improve! Or even come up with ideas 👍

            1 條回覆 最後回覆 回覆 引用 0
            • kenK 離線
              ken
              最後由 編輯

              Well, this is starting to look good. My suggested improvement

              1. If you do two hatches of the same face, is it possible to get both hatches in the same group.

              Thank you for your work

              Ken

              Fight like your the third monkey on Noah's Ark gangway.

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

                Maybe hatches should be on its own layer?

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

                  Thank you for your input guys!! Good points!

                  I will answer more profound tomorrow. I'm a bit in a hurry! For Now, here is a minitut or tips, as a compensation that the hole "issue" isent fixed yet. 😉


                  Hatchtut2-1.jpg

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

                    TIG, kyyu, please do not leave jolran alone. You are all together make a very necessary work.

                    1 條回覆 最後回覆 回覆 引用 0
                    • TIGT 離線
                      TIG Moderator
                      最後由 編輯

                      We are helping him... [sometimes in the background 😉 ] 😄

                      TIG

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

                        @tig said:

                        We are helping him... [sometimes in the background 😉 ] 😄

                        👍

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

                          About added features:

                          To put hatches in a layers(newly created OR selected) is possible, at least create a new layer. I was thinking of adding that anyway.

                          @unknownuser said:

                          If you do two hatches of the same face, is it possible to get both hatches in the same group.

                          It is a good idea, looking at how the plugin works right now. But it's risky business adding geometry inside groups, and you probably have to select the created hatchgroup before running. Wich in turn will not add that much improvement in workflow?
                          But if you really, REALLY want that feature... It won't hurt testing..

                          My personal view is that I should rather investigate the possibilitie to improve the plugin with a "pattern library" instead. No promises can be made in that regard though. It seams difficult.

                          @unknownuser said:

                          TIG, kyyu, please do not leave jolran alone
                          😄

                          TIG's been helping me a LOT! Through PM's and more, otherwise this plugin would not exist. KYuu fixed the spacing and that was mucho importante.

                          1 條回覆 最後回覆 回覆 引用 0
                          • TIGT 離線
                            TIG Moderator
                            最後由 編輯

                            The layer part is easy. Add some code to make/refer to the layer
                            hatch_layer=model.layers.add("HATCH")
                            If it doesn't exist it's made...
                            Then after the group is made use...
                            group.layer=hatch_layer
                            Done 😄

                            You could add a 'crosshatch' option to the main dialog, because most of the time that's what's wanted anyway - "Crosshatch? " >> "Yes|No" [you'd need to insert a 3rd ['','',["Yes|No"]] in inputbox moving the title over to 4th place] - default would be 'No'. If results[3]=='Yes' you'd repeat the line drawing steps within the same group entities, but at +/-90 degrees, so there would be twice as many edges overlaid etc... 💭

                            How are the 'holes' going... ❓

                            TIG

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

                              He he! As easy as that, huh? 😄 Well there you have it guys!

                              I will work on those things. And put an option of angle on second hatching. That would give you as much flexibility as
                              needed for linehatching I presume?

                              The "holes"... Hmm difficult. I have been searching posts about that subject(Don't just want to add anything unless I actually understand what is going on). If I understood it right, holes are somewhat problematic in Sketchup. One have to
                              use both face.outer_loops AND face_loops to get to the face hole geometry? Where face_loops is innerloop? Or include.all loops? That is a big difference.

                              In API it says: Face outer_loops retrieves a "face loop object" But what does that mean?
                              Edges, vertices? Both? Is it an array?

                              For a newbie like me to interprate the API is quite difficult.
                              The posts in here are very helpful, but it takes time to search specific posts. There are currently around 146 pages * 25 * (number replies) in just the developper section. 😄

                              So with that said, I am very greatful for your help TIG.

                              1 條回覆 最後回覆 回覆 引用 0
                              • TIGT 離線
                                TIG Moderator
                                最後由 編輯

                                all_loops=face.loops i.e. its is an array of all loops including the outer one
                                outer_loop = face.outer_loop inner_loops = all_loops - [outer_loop]
                                Although some of this is of academic interest as we only need all_loops...

                                As I said before [in a PM]... you simply iterate through all loops and add a face for each loop using its vertices.
                                all_loops.each{|loop|gents.add_face(loop.vertices)}
                                You have the main face drawn... but with its holes filled in with other faces.
                                We can erase these by testing to see if each face in gents has an edge with only one face [i.e. it's NOT in a hole], if not then we'll erase it...

                                faces2go=[]
                                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)
                                
                                

                                [this code is untested and might have typos !]
                                Now you should have a perfect clone of the face inside the group with any holes reproduced too.
                                Do your intersecting of the hatch lines etc just as before and then when you erase 'faceless edges' the ones now crossing these 'holes' will be erased too 😄

                                TIG

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

                                  Great info! Will work on that.

                                  Do you mean {|loop|gents.add_face

                                  or {|loop|ents.add_face ?

                                  Thank you TIG. Got me some homework 😄

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • TIGT 離線
                                    TIG Moderator
                                    最後由 編輯

                                    The 'gents' refers to the group.entities where we are replicating the face ?

                                    TIG

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

                                      Yes that make sence. I had already put a similar code from your pm in my editor where I had used ents.

                                      That was wrong then from my part. Makes thing clearer. Thanks! 😄

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

                                        Strange. Should work, but no innerface is created.
                                        Hatch gets created over whole face. I tried different combinations with
                                        these new lines added, but get errors then..

                                        gp=ents.add_group()
                                              gp.name=name
                                              gents=gp.entities
                                              face=gents.add_face(face.outer_loop.vertices) # adds a faceclone from outer vertices loop
                                              faces2go=[]  # was faces2gp? Typo? array for innerloups faces
                                              face.loops.each{|loop|gents.add_face(loop.vertices)}   # creates inner loop 
                                              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
                                          最後由 編輯

                                          Try first adding the faces for the 'inner_loops' - each using loop.vertices in turn [i.e. face.loops-[face.outer_loop]], then add the face from face.outer_loop.vertices...
                                          This might work... To see what you are getting stop the code temporarily before the inner faces are erased and before any hatching is done - add a line 'return nil' in the code so that it stops... You should get the faces reproduced in the group. Then try with the inner face erase bit to see if they go [sans hatching...] 😕

                                          TIG

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

                                            Perhaps the thickness of the hatch lines should not be equal to the thickness of the edges? Like dimension lines.

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

                                            Advertisement