# Copyright 2005, @Last Software, Inc. # This software is provided as an example of using the Ruby interface # to SketchUp. # Permission to use, copy, modify, and distribute this software for # any purpose and without fee is hereby granted, provided that the above # copyright notice appear in all copies. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #----------------------------------------------------------------------------- require 'sketchup.rb' #----------------------------------------------------------------------------- def centerArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve begin point = arccurve.center rescue UI.messagebox $!.message end if (point) UI.messagebox (point) else UI.messagebox "Failure" end end def endAngleArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve begin endangle = arccurve.end_angle rescue UI.messagebox $!.message end if (endangle) UI.messagebox (endangle) else UI.messagebox "Failure" end end def normalArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve v = arccurve.normal if (v) UI.messagebox v else UI.messagebox "Failure" end end def planeArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve plane = arccurve.plane if (plane) UI.messagebox plane else UI.messagebox "Failure" end end def radiusArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve radius = arccurve.radius if (radius) UI.messagebox radius else UI.messagebox "Failure" end end def startAngleArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve startangle = arccurve.start_angle if (startangle) UI.messagebox startangle else UI.messagebox "Failure" end end def xAxisArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve v = arccurve.xaxis if (v) UI.messagebox v else UI.messagebox "Failure" end end def yAxisArcCurveTest centerpoint = Geom::Point3d.new # Create a circle perpendicular to the normal or Z axis vector = Geom::Vector3d.new 0,0,1 vector2 = vector.normalize! model = Sketchup.active_model entities = model.active_entities edgearray = entities.add_circle centerpoint, vector2, 10 edge = edgearray[0] arccurve = edge.curve v = arccurve.yaxis if (v) UI.messagebox v else UI.messagebox "Failure" end end if( not file_loaded?("arccurvetests.rb") ) # This will add a separator to the menu, but only once add_separator_to_menu("Plugins") plugins_menu = UI.menu("Plugins") ArcCurve_menu = plugins_menu.add_submenu("ArcCurve Tests") ArcCurve_menu.add_item("ArcCurve.center") { centerArcCurveTest } ArcCurve_menu.add_item("ArcCurve.end_angle") { endAngleArcCurveTest } ArcCurve_menu.add_item("ArcCurve.normal") { normalArcCurveTest } ArcCurve_menu.add_item("ArcCurve.plane") { planeArcCurveTest } ArcCurve_menu.add_item("ArcCurve.radius") { radiusArcCurveTest } ArcCurve_menu.add_item("ArcCurve.start_angle") { startAngleArcCurveTest } ArcCurve_menu.add_item("ArcCurve.xaxis") { xAxisArcCurveTest } ArcCurve_menu.add_item("ArcCurve.yaxis") { yAxisArcCurveTest } end #----------------------------------------------------------------------------- file_loaded("arccurvetests.rb")