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

    [Plugin]ArcCurve-set_segments.rb & changearcsegments 130830

    Scheduled Pinned Locked Moved Plugins
    32 Posts 11 Posters 65.0k Views 11 Watching
    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.
    • G Offline
      gavvy
      last edited by

      😲
      TIG
      The script I add just copy from the projectnormalface.rb.
      I try the @ff_edges it work well πŸ˜›
      Incidentally, i call scripts through the usertoolbar written by Jim ,so the ruby files i use no menu or button script (i delete them 😲 )

      1 Reply Last reply Reply Quote 0
      • pilouP Offline
        pilou
        last edited by

        For the volumes 3D from Autocad does it possible to make the same thing?

        Something like this in the Widows box option of SU importation : give minimum angle between facets
        (so numbers of segments of arcs will be limited by this value)
        But I don't know how is managed entities 😳
        I suppose 2 circles connected but... πŸ˜’

        here a cylinder from autocad


        cylinder.zip

        Frenchy Pilou
        Is beautiful that please without concept!
        My Little site :)

        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          Unfortunately SUp doesn't allow [easy] editing of many of the properties of arcs or circles it they form parts of complex 3D shapes... Changing an arc or circle could change so many other things that are connected to it that it would quickly become unmanageable ! So, you cannot change the number of segments in an arc or circle using Entity Info IF it has connected faces that aren't coplanar with the arc/circle itself... My new 'method' has the same limitations...

          Sorry...

          TIG

          1 Reply Last reply Reply Quote 0
          • pilouP Offline
            pilou
            last edited by

            Well, Nevemind! πŸ˜‰
            Maybe something to make by "exploding" object in Autocad πŸ˜’

            Frenchy Pilou
            Is beautiful that please without concept!
            My Little site :)

            1 Reply Last reply Reply Quote 0
            • pilouP Offline
              pilou
              last edited by

              All this don't arrive if you use Moi πŸ˜‰
              Here a simple cylinder with a hight number of segments πŸ˜„
              (limit of the 24 segments default is overpassed πŸ˜‰
              And you can control the aspect of polygons before exportation!
              Exportation is in SKP format of course! β˜€

              http://forums.sketchucation.com/download/file.php?id=28152

              Frenchy Pilou
              Is beautiful that please without concept!
              My Little site :)

              1 Reply Last reply Reply Quote 0
              • Chris FullmerC Offline
                Chris Fullmer
                last edited by

                That is one of the key differences of solid modeler vs. face modeler.

                Lately you've been tan, suspicious for the winter.
                All my Plugins I've written

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  Here is an updated version http://forums.sketchucation.com/viewtopic.php?p=158903#p158903
                  e.g. arcCurve.set_segments=6

                  You will need both of the rubies that are attached there...

                  The new file, ArcCurveTests.rb, includes three new methods is_loop?, .is_circle? and .is_polygon? - these methods are not accessible through Ruby otherwise...

                  They are used to determine the original ArcCurve's underlying 'type' [Arc/Circle/Polygon] and then use that to remake the geometry with the new segment/sides count as the right 'type' [previously any Circles/Polygons that were changed by this method became 'Arcs' !]...

                  EDIT: ArcCurveTests.rb updated... 20091002

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    Some of these methods can be simplified with the aid of Curve.is_polygon? added in Google SketchUp 7.1 - Maintenance 1.

                    Here's a set I made for my TT_Lib:

                    
                    	def self.is_curve?(entity)
                    		return false unless entity.is_a?(Sketchup;;Edge) && entity.curve
                    		return false if entity.curve.respond_to?(;is_polygon? ) && entity.curve.is_polygon?
                    		return true
                    	end
                    	
                    	def self.is_arc?(entity)
                    		return self.is_curve?(entity) && entity.curve.is_a?(Sketchup;;ArcCurve)
                    	end
                    	
                    	def self.is_circle?(ent)
                    		# (i) A bug in SU makes extruded circles into Arcs with .end_angle of 720 degrees when reopening the file.
                    		# Instead of checking for 360 degrees exactly, we check for anything larger as well. A 2D arc
                    		# can't have more than 360 degrees.
                    		#
                    		# This doesn't work. Maybe due to rounding errors?
                    		# return (arc_curve.end_angle - arc_curve.start_angle >= 360.degrees) ? true ; false
                    		return false unless self.is_arc?(ent)
                    		return ((ent.curve.end_angle - ent.curve.start_angle).radians >= 360) ? true ; false
                    	end
                    	
                    	def self.is_polygon?(ent)
                    		return ent.is_a?(Sketchup;;Edge) && ent.curve && ent.curve.respond_to?(;is_polygon? ) && ent.curve.is_polygon?
                    	end
                    	
                    	def self.is_ngon?(ent)
                    		return false unless self.is_polygon?(ent) && ent.curve.is_a?(Sketchup;;ArcCurve)
                    		return ((ent.curve.end_angle - ent.curve.start_angle).radians >= 360) ? true ; false
                    	end
                    
                    

                    SU versions prior to this .is_polygon? will not be able to tell a Circle or Polygon apart, but no error is thrown.

                    Thomas Thomassen β€” SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • TIGT Offline
                      TIG Moderator
                      last edited by

                      Here's an updated version that avoids other method clashes... http://forums.sketchucation.com/viewtopic.php?p=158903#p158903
                      IF you have the older script ArcCurveTests.rb installed please remove it as it might clash with some other methods...

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • E Offline
                        eskis
                        last edited by

                        great! great! great! that is what i was looking for!!!!!!
                        thank you...

                        1 Reply Last reply Reply Quote 0
                        • A Offline
                          ahnvtk
                          last edited by

                          I've tried making a script that automatically creates an 8-sided circle in a group at sketchup start, to see if all circles created by a user would then be 8-sided as well. They aren't - scripting an 8-sided circle still leaves the default sides at 24. 😞

                          I tried changing the sides of a circle with this script as well - Sketchup still leaves the default at 24.

                          How can I change the default sides of a circle? ❓

                          1 Reply Last reply Reply Quote 0
                          • TIGT Offline
                            TIG Moderator
                            last edited by

                            You can't.
                            😞

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • A Offline
                              ahnvtk
                              last edited by

                              😞

                              At least this script here just saved me time reducing polys from extruded circles.. thanks!

                              1 Reply Last reply Reply Quote 0
                              • B Offline
                                boilingsnow
                                last edited by

                                TIG it's nice of you to share this with us. I think this ruby is very useful but it's convenient to use because everytime I have to type "changearcsegments NNN" in the ruby console...Why not make it possible to be added in the plugin menu and works with a popup window to type in the segment number.

                                1 Reply Last reply Reply Quote 0
                                • TIGT Offline
                                  TIG Moderator
                                  last edited by

                                  Edit the script with a plain-text editor [Notepad/Notepad++.exe] and add this code at the end

                                  unless file_loaded?(File.basename(__FILE__))
                                    UI.menu("Plugins").add_item("Change Arc Segments"){
                                      segments=inputbox(["Segments; "],[12],"Change Arc Segments")
                                      changearcsegments(segments[0])if segments
                                    }
                                  end
                                  file_loaded(File.basename(__FILE__))
                                  

                                  TIG

                                  1 Reply Last reply Reply Quote 0
                                  • B Offline
                                    boilingsnow
                                    last edited by

                                    @tig said:

                                    Edit the script with a plain-text editor [Notepad/Notepad++.exe] and add this code at the end

                                    unless file_loaded?(File.basename(__FILE__))
                                    >   UI.menu("Plugins").add_item("Change Arc Segments"){
                                    >     segments=inputbox(["Segments; "],[12],"Change Arc Segments")
                                    >     changearcsegments(segments[0])if segments
                                    >   }
                                    > end
                                    > file_loaded(File.basename(__FILE__))
                                    

                                    Thank you!

                                    1 Reply Last reply Reply Quote 0
                                    • L Offline
                                      LorenzoS
                                      last edited by

                                      Hi!

                                      Is Anyone so kind to tell me how to use this plug-in.

                                      I get an error that says
                                      Error Loading File ArcCurve-set_segments=.rb
                                      no such file to load -- ArcCurveTests.rb

                                      any help?

                                      thx!
                                      p.s.
                                      I downloaded the script from the first post.

                                      1 Reply Last reply Reply Quote 0
                                      • TIGT Offline
                                        TIG Moderator
                                        last edited by

                                        It doesn't even use ArcCurveTests.rb or mention it in its code - in fact in earlier posts [in this thread] you are recommended to remove that very file from your Plugins folder, because changes to the API have meant that it might clash and updates of this tool no longer need it anyway.
                                        So it is not 'required' by the recent versions of this script...
                                        Your error message leads me to think that you have an old version of the tool loading...
                                        Are you sure you have got the latest one in the Plugins folder? Windows Vista/Win7 can 'play tricks' if you don't have full access rights to the Plugins folder - it looks like you have added/updated a file/subfolder... but there's a 'Compatibility Files' button added to the folder's window-bar and they have actually gone into a side folder, IF you haven't got full security access rights to a folder [right-click context-menu Properties > Security]

                                        Here's the latest version http://forums.sketchucation.com/viewtopic.php?p=158903#p158903
                                        It has the Plugins menu item added to the code as discussed a few posts back...
                                        Download the latest file from this link.
                                        It should make a Plugins menu item which opens a dialog into which you type the number of arc segments required to process all selected arcs/circles...

                                        TIG

                                        1 Reply Last reply Reply Quote 0
                                        • T Offline
                                          theotses
                                          last edited by

                                          Hi!

                                          I downloaded the plugin and istalled it. I have a big drawing with many arcs and is nearly impossible to select them all. So i select the whole drawing as i imported it and then i use the plugin. But the plugin works only with some of the arcs and the others remain with the default number of segments.

                                          How can i use the plugin on all the arcs?

                                          Thank you in advance.

                                          1 Reply Last reply Reply Quote 0
                                          • TIGT Offline
                                            TIG Moderator
                                            last edited by

                                            SketchUp's Arcs/Circles can have their 'segmentation' set as they are made OR later on by using 'Entity Info', OR bu using this tool.
                                            BUT Arcs that have been scaled, exploded into edges OR are now incorporated into 3d geometry [extrusions etc] are never changeable.
                                            So if you can't change your Arc's segmentation using 'Entity Info', then you can't change it with anything else either: its properties have been fixed by your earlier actions.

                                            TIG

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

                                            Advertisement