New API doc - typos and questions
-
The class Sketchup::HLR is undocumented in the API.
It's an Entity subclass.
It inherits all the Entity baseclass methods, and adds 2 of it's own:- .calculate* .num_faces
If you create a HLR object at the console, and call .parent (when it has no parent) a BUG SPLAT! results. See post: http://forums.sketchucation.com/viewtopic.php?f=11&t=24740#p212101
What is this class HLR used for? (.. as there is no .add_HLR method for the Entities collection object.)
-
Tool.getExtents
http://code.google.com/apis/sketchup/docs/ourdoc/tool.html#getExtentsThe example given isn't a good one. From my observations, clipping occurs only when you draw outside the model boundary. So returning
model.bounds
is pointless. -
Sketchup.send_action
http://code.google.com/apis/sketchup/docs/ourdoc/sketchup.html#send_actionYou can toggle the StatusBar on/off in Ruby (PC only?) via:
Sketchup.send_action(59393)The following have no effect on my PC in SU ver 7.1.x:
Sketchup.send_action(21019) hide Status bar and VCB
Sketchup.send_action(21020) show Status bar and VCB
Sketchup.send_action(21022) hide Status bar and VCB?
..whereas the above id 59393 does work for just the StatusBar.[ NOTE: I've moved my VCB up to the 2nd line of the Top Toolbar Container in 2nd position after the Layers toolbar, so I'd not want the VCB turned off with the StatusBar anyhow. I see them as two different things. ]
-
@dan rathbun said:
(An alternative... we might create tb_Name constantsunder the UI module that would be the same for both platforms.)
Here's an example, call it 'UI_tb_const.rb'
module UI # # Example ONLY # case Sketchup;;OS when ;WIN # tb_CAM = 'Camera'.freeze tb_CONS = 'Construction'.freeze tb_DISP = 'DisplayMode'.freeze tb_DRAW = 'Drawing'.freeze tb_EDIT = 'Edit'.freeze tb_GETS = 'GettingStarted'.freeze tb_GOOG = 'Google'.freeze tb_LTS = 'LargeToolSet'.freeze tb_LAYR = 'Layers'.freeze tb_STD = 'Standard'.freeze tb_TABS = 'SceneTabs'.freeze tb_PRIN = 'Principle'.freeze # spelling! tb_SBAR = 'StatusBar'.freeze tb_SECT = 'Section'.freeze tb_SHAD = 'Shadows'.freeze tb_VIEW = 'StandardViews'.freeze tb_VCB = 'VCB'.freeze tb_WALK = 'Walk'.freeze # when ;OSX # what are the Mac Strings? tb_CAM = 'Camera'.freeze tb_CONS = 'Construction'.freeze tb_DISP = 'DisplayMode'.freeze tb_DRAW = 'Drawing'.freeze tb_EDIT = 'Edit'.freeze tb_GETS = 'GettingStarted'.freeze tb_GOOG = 'Google'.freeze tb_LTS = 'LargeToolSet'.freeze tb_LAYR = 'Layers'.freeze tb_STD = 'Standard'.freeze tb_TABS = 'SceneTabs'.freeze tb_PRIN = 'Principle'.freeze # spelling! tb_SBAR = 'StatusBar'.freeze tb_SECT = 'Section'.freeze tb_SHAD = 'Shadows'.freeze tb_VIEW = 'StandardViews'.freeze tb_VCB = 'VCB'.freeze tb_WALK = 'Walk'.freeze # end # case end # module UI extension
-
UI.toolbar_names
http://code.google.com/apis/sketchup/docs/ourdoc/ui.html#toolbar_names@unknownuser said:
The toolbar_names method is used to returns the name of all the available toolbars (this differs between PC and Mac).
(1) In the above sentence "returns" should be singular.
(2) I believe punctuation marks are supposed to go at the end of the words, ie: "Mac.)" not "Mac)." ...Language majors, confirm?
(3) It would nice if we are to do cross-platform scripts, that you list the names for PC and Mac in the API.
(4) UI.toolbar_names.sort on the PC, ver 7.1 returns:
["Camera", "Construction", "DisplayMode", "Drawing", "Edit", "GettingStarted", "Google", "Principle", "Section", "Standard", "StandardViews", "VCB", "Walk"]
.
On the [Win32] Sketchup Menu: View > Toolbars(and toolbar captions):-
Principle is Principal* Edit is Modification* VCB is Measurements* StandardViews is Views* Section is Sections* DisplayMode is FaceStyle* Walk is Walkthrough
These are on the [Win32] Menu: View > Toolbars but, missing from the UI toolbar methods: -
LargeToolSet* Layers* SceneTabs (on View menu )* Shadows
Missing from View Menu and toolbar methods: -
StatusBar
(We can toggle it on/off [with send_action on PC], so might as well add it to the toolbar methods so we can test it's visiblilty, and use set_toolbar_visible for cross platform [if it can be toggled on MAC.])* If a user has the StatusBar off, a tool might want to instead display a messagebox if it must inform the user of some fact, so it needs to test whether it's on/off.
(5) This same Toolbar Name Identifier Set is used with the following methods, and have the same problems, missing Identifiers, etc.
- UI.set_toolbar_visible* UI.toolbar_visible?
So.. we don't mind variation in the toolbar names/symbols, so long as we know what that variation is.
(An alternative... we might create tb_Name constants under the UI module that would be the same for both platforms.)
-
-
Entities.add_curve
http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#add_curve@unknownuser said:
Returns:
curve aCurve
object if successfulSU7.1M1 PC returns an array of edges. Other versions untested. I'm submitting this as a bug.
-
Curve.move_vertices
http://code.google.com/apis/sketchup/docs/ourdoc/curve.html#move_vertices@unknownuser said:
The vertices method retrieves a collection of all vertices in a curve.
Seem to have copied the text from
Curve.vertices
.
Description needs updating along with an example. -
@thomthom said:
Entities.add_curve
http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#add_curve@unknownuser said:
Returns:
curve aCurve
object if successfulSU7.1M1 PC returns an array of edges. Other versions untested. I'm submitting this as a bug.
It's always returned an array of edges - the curve is then
array[0].curve
-
_
Model.title@unknownuser said:
The tile method retrieves the name of the model. If the model is saved on disk, returns the file name without extension. Otherwise returns an empty string.
http://code.google.com/apis/sketchup/docs/ourdoc/model.html#title
Change 'tile' to 'title' in method description.We could use Model.is_saved? and Model.is_unsaved? methods, as the Model.title method is the only way (that I can find) to determine if the model has yet been saved or not. We cannot rely upon the word 'Untitled' (in the caption bar) because that may actually be a valid filename.
Workaround:
class Sketchup;;Model def is_saved? return not title.empty? end def is_unsaved? return title.empty? end end # class
_
-
Camera.set
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/camera.html#setThe initialize method is deprecated. It essentially does the same thing as Camera.set.
Seems that's the description for
Camera.new
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/camera.html#new
...and thatCamera.new
has the description forCamera.set
-
View.pickray
http://code.google.com/apis/sketchup/docs/ourdoc/view.html#pickray@unknownuser said:
Returns:
ray
a ray"a ray"? Without testing this I#m guessing either a vector or line.
-
@thomthom said:
View.pickray
http://code.google.com/apis/sketchup/docs/ourdoc/view.html#pickray@unknownuser said:
Returns:
ray a ray"a ray"? Without testing this I#m guessing either a vector or line.
see this...
@unknownuser said:
Model.raytest
A ray is a two element array containing a point and a vector [Geom::Point3d(), Geom::Vector3d()]. http://code.google.com/apis/sketchup/docs/ourdoc/model.html#raytest
_ -
Yea - I tested it later that day. It's what the
Geom
module describes as a line. -
@thomthom said:
Yea - I tested it later that day. It's what the
Geom
module describes as a line.Shouldn't the API have a definition for Line and/or Ray as a class (under the Geom module) ?
something like:
class Geom;;Ray < Array def new(*args) Array[Geom;;Point3d().new, Geom;;Vector3d().new] super() end end
-
Line
andPlane
? hm... maybe... thought of that myself. but never really felt the need for it to make a request. works fine as it is.Dealing with them as Arrays works ok. They are simple structures.
-
Model.add_note
The note is not displayed unless there are entities in the model. If you add a note first thing in a new model, it is invisible but .visible? on the note object still returns true.
As soon as you draw something, the note appears.
-
Thanks Dan - yet more never-seen-before docs coming to light.
-
I have the mental image of Scott drowning in printouts from this thread...
-
Oh, I think there is a completely undocumented UTM class in there somewhere under Geom.
-
@jim said:
Oh, I think there is a completely undocumented UTM class in there somewhere under Geom.
hm.. all I can find out about that one is:
Geom::UTM.instance_methods.sort.join("\n") (eval):894: warning: instance_methods: parameter will default to 'true' as of 1.8.1 to_a to_latlong to_s x y zone_letter zone_number
Advertisement