[Plugin]ArcCurve-set_segments.rb & changearcsegments 130830
-
Well, Nevemind!
Maybe something to make by "exploding" object in Autocad -
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! -
That is one of the key differences of solid modeler vs. face modeler.
-
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
-
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. -
Here's an updated version that avoids other method clashes... http://forums.sketchucation.com/viewtopic.php?p=158903#p158903
IF you have the older scriptArcCurveTests.rb
installed please remove it as it might clash with some other methods... -
great! great! great! that is what i was looking for!!!!!!
thank you... -
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?
-
You can't.
-
At least this script here just saved me time reducing polys from extruded circles.. thanks!
-
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.
-
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 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!
-
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.rbany help?
thx!
p.s.
I downloaded the script from the first post. -
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... -
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.
-
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. -
I can change the segmentation from entity info but the arcs are too many. So I tried to select the whole drawing and change the segmentation with the tool but only few of the arcs got the segments I wanted.
-
Wireframe mode will avoid picking faces, then select-by-fence, missing out anything that is obviously not an edge/curve...
Any errors in the Ruby Console ? -
Thank you for your instant replies.
I don't have any faces in my model. I don't really understand what you mean with the fence selection. (This is my first model in SketchUp )
I don't get any errors at all. I just select all the lines and arcs (because i said in the first post that it is impossible to select every arc with clicks), then i use the plugin and i set the desired number of segments. Unfortunately not all the arcs get the number of segments I set in the plugin dialog box.
Advertisement