New API doc - typos and questions
-
Scott: I think it's worth to also add some notes on the observers that aren't working. Especially those that seem to cause bugsplats. http://forums.sketchucation.com/viewtopic.php?f=180&t=20676
-
I'm not sure if you've caught this yet, but transformation.xaxis, yaxis, and zaxis return vectors, not points.
-
The
Model
collection some times doesn't list all the materials when you call.each
on it.
http://forums.sketchucation.com/viewtopic.php?f=11&t=21243 -
WebDialog.new
See Martin's post: http://forums.sketchucation.com/viewtopic.php?f=180&t=21502 -
The following was agreed, in http://forums.sketchucation.com/viewtopic.php?f=180&t=21502 to correctly document WebDialog.new.
Alternate to the API docs, with help. This is for PC:
title - string - This text will appear in the title bar of your WebDialog
scrollable - boolean - This is a NOP. You get scrollbars, regardless. Workaround: <body scroll=no>.
key - string - If this is nil or an empty string, your dialog's size/location is stored in "HKEY_CURRENT_USER/Software/Google/SketchUp7/WebDialog_". You should definitely include here the name of your Ruby, which will be concatenated:
"HKEY_CURRENT_USER/Software/Google/SketchUp7/WebDialog_MyRuby"width, height, left, top - integers - size/location, in pixels, of the first appearance of your WebDialog. All subsequent appearances will be taken from the registry entry.
resizeable - boolean - if false, your user cannot resize the dialog. Defaults to true, if omitted.
-
class ShadowInfo
ShadowTime_time_t
SunRise_time_t
SunSet_time_t
TZOffset
UseSunForAllShadingThose keys are not mentioned/explained in the documentation.
-
Topic: WebDialog.new
The second parameter, scrollbars, appears to be operational on the Mac. PCs get scrollbars, regardless.
-
Just a general request for the API docs. When viewing a method which references another class, would it be possible to link to that class? For example, you are the viewing Model.bounds description - it would be nice to be able to jump right to the BoundingBox class.
Thanks.
-
I wonder if we should lock this list and start a new one for 7.1?
-
@jim said:
I wonder if we should lock this list and start a new one for 7.1?
Maybe once Scott has updated the docs first?
-
Entity.typename
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/entity.html#typenameI think it's worth noting here that
.typename
comparison is slow and should be avoided if possible. Ref: http://forums.sketchucation.com/viewtopic.php?f=180&t=19576&st=0&sk=t&sd=a#p166340
.typename
is required if you need to identify entity types that don't have ruby API classes, such as DimensionLinear, DimensionRadial and Polyline3d. And if you scan for these that you check for entities of classDrawingElement
before you do a.typename
comaprison. -
"DisplayColorbyLayer" key of RenderinOptions should read "DisplayColorByLayer"
-
@unknownuser said:
"DisplayColorbyLayer" key of RenderinOptions should read "DisplayColorByLayer"
What's wrong with Colorby Layer ?
-
@newone said:
What's wrong with Colorby Layer ?
Try read the value of it. Such a key does not exist.
-
Did I miss a joke..?
-
@unknownuser said:
@newone said:
What's wrong with Colorby Layer ?
Try read the value of it. Such a key does not exist.
hey, that was a joke I got your point and you are right...
-
@newone said:
@unknownuser said:
@newone said:
What's wrong with Colorby Layer ?
Try read the value of it. Such a key does not exist.
hey, that was a joke I got your point and you are right...
I'm afraid you are much too easily amused
-
Sketchup.register_importer
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/sketchup.html#register_importerThe docs says SU6.0+, but isn't it SU7.0+ ?
-
Sketchup.read_default
http://code.google.com/apis/sketchup/docs/ourdoc/sketchup.html#read_default@unknownuser said:
True if successful, false if unsuccessful.
Surely it would return the value being accessed?
-
@thomthom said:
Sketchup.read_default
http://code.google.com/apis/sketchup/docs/ourdoc/sketchup.html#read_defaultTrue if successful, false if unsuccessful.
Surely it would return the value being accessed?Verified!
Sketchup.read_default('Preferences','SnapAngle') returns 15.0
[My current setting; which happens in this case to be class Float.]The API doc is vague about the default argument. The definition should read (as things work now):
"(optional) A value to return, if the variable is not found or empty."
[The way it is written, I read it as being a value to write into the registry.]The lack of error checking in this method, can easily create false Resistry Keys.
Example: if you misspell the key (section on the Mac,)... ie:
[note misspelled 'Preferences']:
Sketchup.read_default('Prefera
nces','SnapAngle')
... the method creates a new 'Preferances' key, with nothing under this new WORTHLESS key. (No Valuename, no value.) The method then just returnsnil
. [On Win32, we must manually use the Registry Editor to get rid of this junk!]If the key is correct, but the Valuename is wrong (or does not exist,) the method just returns
nil
, [again,] or the default ReturnValue.If the the Key is correct, AND the Valuname is correct, but the Value is empty, the method returns
nil
, [once again,] or the default ReturnValue.So we have 3 situations in which the method can return nil, and no way thru the SU API to tell what the situation is. [yes we can use one of the full ruby Win32 Registry modules, and I may begin doing this.]
A fourth situation, is if the value is an empty string, (ie '' or "" are stored in the registry value the method just returns the empty string (and
NOT nil
.) The return class of the method is string in this case.
This can happen if you use Sketchup.write_default( key, valuename, ""), but its not necessary as each value in the registry has a type, and strings don't need delimiters.
We should use instead Sketchup.write_default( key, valuename, nil) to clear a string value in the registry.I would propose a change to this method...
(1 as is.) IF everything exists, it works OK, and the value is returned.
(2 as is.) If (the Key exists, AND the Valuename exists,) AND the value is empty, then the method should return NIL without a default Return Value (3rd parameter,) OR the 3rd parameter if given.
(3) If the EITHER the Key OR the Valuename do NOT exist, then the method should raise an exception similar to a hash index error, viz:
Error in myprog.rb:22:in `Sketchup.read_default': key not found (IndexError) ...Then (reference methods for Hash class):
CREATEseveral new boolean methods similar to Hash.has_key?, Hash.has_value? and Hash.empty? so the programmer can decide in their RESCUE block what action to perform;I'd envision these boolean methods to be named similar to:
Sketchup.default_empty?
Sketchup.default_has_key? (perhaps with a Mac alias .default_has_section? for plist files)
Sketchup.default_has_valuename? (perhaps a Mac alias .default_has_variable? for plist files).
Thoughts?
Advertisement