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
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • S 離線
      sergey2402
      最後由 編輯

      Angle of Hatching


      HatchRotation.jpg

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

        That is true Sergey!

        Should be an relativley easy fix. For TIG that is 😄 For me, everything takes time..

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

          Hmm. GRRRRoin 😠
          The problem from yesterday is worse than I thought. Linehatch direction gets switched in different axis.
          That is probably what TIG was reffering to. In my over-enthusiastic mood I did not notice that.

          So my only conclusion is that an selected edge MUST be included in the calculation of hatch.angle.

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

            Trying something. Comments are VERY welcomed. Have selected the face and 1 edge.

            Can retrieve the edge like this.

            @h_edge=ss if ss.class==Sketchup;;Edge
            

            And if using the edges points to make a vector, I've tried @h_edge.line. Did not work. This does not work either.

            pt=@h_edge.start
            p1=@h_edge.end
            ve=pt.vector_to(p1)
            

            Main goal is to make a condition: If an edge+face is selected run this code. If only face is selected run the axis code.
            Of course only 1 edge can be selected.
            Bad idea?

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

              The problem with the idea is that currently it processes all of the faces in a selection, if you have one edge selected it won't necessarily lie on the plane every face processed ?

              My way uses the x-axis [usually] to determine the start vector [projected onto the face's plane] from which you angle off the hatching edges...

              TIG

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

                Ahh, you mean multiple face selection? Yes I see, that will not work of course. 😕
                I don't see it as a big limitation that only 1 face could be processed at each time?
                Or faces on the same plane, wich is probably the most common case?

                Edges get drawn a bit irregular atm.


                crossed.jpg

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

                  If selecting face and edge I can only get an array, not the edge as an individual edge selection? 😞
                  Even if doing a ==Sketchup::Edge thingy..
                  Must I use a selection observer for this?
                  Would be fun if I could even try this method out, but stuck on basic things..

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

                    No complications like observers needed.
                    To pick one face and one edge from the selection use
                    ss=model.selection face=nil edge=nil faces=[] edges=[] ss.each{|e| if e.class==Sketchup::Face faces << e end if e.class==Sketchup::Edge edges << e end } face=faces[0]if faces edge=edges[0]if edges
                    This takes the first face and first edge it comes across in the selection and ignores all others [if there are any].
                    You then need a trap if there's no face selected
                    if not face UI.messagebox("Select a Face you dolt!") return nil end
                    and
                    ` if not edge

                    choose 'edge' by other means or error message again

                    endYou now process 'face' just the once and not 'each face in faces'... If you want to be thorough report the user has picked more than one face or edge if faces[1]
                    UI.messagebox("Select ONE Face - only the 1st selected Face was processed - Twit!")
                    return nil
                    end
                    if edges[1]
                    UI.messagebox("Select either NO or ONE Edge - only the 1st selected Edge was used - Fool!")
                    return nil
                    end`
                    etc etc...

                    TIG

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

                      Ahhh 😮 Excellent! That certainly make more sence then the shi£$y stuff I was working on.

                      I will try this tomorrow, avec plaisire.

                      Thank you TIG.

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

                        I think I will alter the "Tourette Syndrome style" prompts in the inputbox you recommended.

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

                          They were intended as a 'joke' 😉

                          TIG

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

                            No worries! 😄

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

                              Well, it seams to be working a little better now. No promises though..

                              TIG's selection code works like a charm.
                              Just had to change pt and pt1 to pt=@edge.start.position, p1=@edge.end.position. And use ve=pt.vector_to(p1) as usual.
                              So now the hatching gets aligned to the selected edge..

                              Maybe it would be a good idea to have the plugin run as usual(axis mode) if NO edge is selected? Some if statements when edge is NOT selected or so..

                              That way one still would have the possibility to alter several faces should one wish so.
                              Anyway if no objections I might do the update on this?


                              for ver1.5.jpg

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

                                eekk, don't know what I'm talking about 👊 It does multiple faces as long 1 edge is selected and the face is
                                connected to that edge.

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

                                  Could you upload version 1.5 to test it?

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

                                    Yep. This evening.

                                    I was planning on adding the crosshathcing as well. But it's not working yet.
                                    Anyway I will upload ver 1.5 anyway, with or without crosshatching.

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

                                      1.5 beta uploaded!

                                      You might as well play with it. An Edge and a Face must be selected. The hatches will be created clockwise according to the edge. Hopefully 😄

                                      I will continue with the crosshatching...

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

                                        Ooops!! 😲 The "Hatchfaces" menu item in Draw menu isent finished yet. Will fix that later...
                                        Should not affect usage with icons..

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

                                          Ok. ver 1.6 beta added.

                                          http://forums.sketchucation.com/viewtopic.php?f=323&t=38637&p=341461#p341461

                                          Crosshatching should be working. It creates the hatches in 2 groups inside a parentgroup, should you wish crosshatching.

                                          Had to rewrite parts into methods. TIG's been "directing" me more and finding problems than "giving" me code in this version. So I had to suffer and learn a little bit more 😄 Besides the script is getting longer so it takes more time to debug from his part...

                                          That said! Beware that this script could surely be optimized, and I'll gladely take tips about how to.
                                          I do feel it's a bit ugly script with all the methodcalling at the end.
                                          Just remember that the temp face(face_clone) method must be separate. So it can be used if there are possibilities to
                                          do other types of hatchpattern, and implement them on the face_clone.

                                          Thanks to TIG, again for tutoring 👍

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

                                            Great it's getting there...
                                            The dialog's values aren't getting remembered.
                                            Make variables like angle/spacing/cross_alt into @ types so they get remembered for next time... Otherwise you need to fill in the dialog each time.
                                            Use this too
                                            angle2=@cross_angle angle2=-@angle if not angle2
                                            This way the dialogs value is then the same as last time OR -@angle
                                            similar for spacing etc
                                            Also the menu item can reuse the cmd0 command rather that make another!
                                            Then it uses the same name as the Toolbar command...

                                            TIG

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

                                            Advertisement