New API doc - typos and questions
-
UVHelper.get_front_UVQ UVHelper.get_back_UVQ
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/uvhelper.html@unknownuser said:
a Point3d containing the UV coordinates where the X value is the U value, the Y value is the V value and the Z value is a Q value (which is not used).
I does appear that the Q value is used. At least when you have a warped texture. (Texture mapped not as a rectangle or parallelogram.) See this thread for further details and sample data: http://www.sketchucation.com/forums/scf/viewtopic.php?f=180&t=19041
-
And I'd also wish there was info about projected textures.
-
http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#add_curve
the .add_curve method says it returns a Curve object. It does not. It returns an array of edges.
I would prefer that it returned the curve object. But that might break the backward compatibility if other scripts have had to work around this?
Chris
-
http://code.google.com/apis/sketchup/docs/ourdoc/webdialog.html#introduction
The Webdialog intro suggests using UI.getURL for opening a basic webpage instead of webdialogs. But there is no getURL method. It should be UI.openURL.
-
UI.inspector_names and UI.show_inspector missing "EntityInfo" Dialog.
UI.inspector_names ["Materials", "Components", "Styles", "Scenes", "Shadows", "Layers", "SoftenEdges", "Outliner", "Instructor", "Fog", "MatchPhoto"]
-
Vector3d.*
http://code.google.com/apis/sketchup/docs/ourdoc/vector3d.html#*The example never displays the * method.
Also, for all the manual examples, such as the Vector methods:
Vector3d.*
,Vector3d.
+,Vector3d.-
,Vector3d.<
It would be nice if they also said the result of the method.
Such as the.*
method would then be:vector = Geom;;Vector3d.new 1,0,0 vector2 = Geom;;Vector3d.new 0,1,0 vector3 = vector * vector2 # Returns [0,0,1]
Seeing the resulting value helps in understanding what it does.
-
Face.plane
http://code.google.com/apis/sketchup/docs/ourdoc/face.html#plane@unknownuser said:
The plane method is used to retrieve the plane of the face. See the Array class for information on how planes are stored.
It's unclear where this information is. I don't see it.
-
@thomthom said:
Face.plane
http://code.google.com/apis/sketchup/docs/ourdoc/face.html#plane@unknownuser said:
The plane method is used to retrieve the plane of the face. See the Array class for information on how planes are stored.
It's unclear where this information is. I don't see it.
From the Geom module:
The plane is returned as an Array of 4 numbers which are the coefficients of the plane equation Ax + By + Cz + D = 0.Along with this helpful tidbit:
NOTE: Lines and Planes are infinite. There are several good books on 3D math if you are new to the concepts of a line, plane, and vector.
But if you go back to your high-school geometry text book (or google "plane equation") you'll find something like this:
[a,b,c] will give a normal vector to the plane, and the normal distance from the origin is given by d / sqrt( a^2 + b^2 +c^2) -
Ah, it referred to the wrong module.
-
Tool.onSetCursor
http://code.google.com/apis/sketchup/docs/ourdoc/tool.html#onSetCursorIt says that it returns the
view
as an argument. When I do that I get anwrong number of arguments(0 for 1)
error. When I leave the argument out everything works.Another note;
@unknownuser said:
The onSetCursor method is called by SketchUp when the tool wants to set the cursor. If your tool needs to have more than one cursor, then you will need to implement this method, but if it only has one you can set the cursor in the activate method.
It says that
UI.set_cursor(id)
can be called from theactivate
method of the tool if you only have one cursor. When I try that the cursor briefly flickers then reverts back to the default arrow. -
I just want to take a second to thank Thomas for his diligence in finding and documenting these inconsistencies. It's really going to make life easier for a lot of folks. CB.
-
Just noticed that 'behavior' has some typos in the examples - '.xxx =' rather than '.xxx=' ...
behavior.always_face_camera = NOT behavior.always_face_camera=
behavior.cuts_opening = NOT behavior.cuts_opening=
behavior.is2d = NOT behavior.is2d=
behavior.no_scale_mask = NOT behavior.no_scale_mask=
behavior.shadows_face_sun = NOT behavior.shadows_face_sun=
behavior.snapto = NOT behavior.snapto=...
-
What? Whitespace matters?
I always put space between = .I believe that I used.is2d =
for my doublecut plugin, and that appeared to work as expected... -
You are right in that it works... BUT the method is behavior.is2d= I thinks it's advisable to keep it like that...
-
So this is a ruby thing? That the = is part of the method name? What about other operations where you use * - + / etc?
(I'm used to languages such as Javascript, PHP, VB, C# - still getting to grips with Ruby.) -
All of these, a = 2, a= 2, a =2 and a=2 work fine, as do 1 + 2 and 1+2, but I think with methods it's at least advisable to stick to the way it's defined, like xxx.is2d= true and xxx.include?(4) etc...
It works either way, but...
-
@thomthom said:
So this is a ruby thing? That the = is part of the method name? What about other operations where you use * - + / etc?
(I'm used to languages such as Javascript, PHP, VB, C# - still getting to grips with Ruby.)Yes, those are all methods. also
[]
and[]=
are methods. You can define them for you own classes, as well as modify them for existing classes.class Array def [](index) return self[-index] # ha ha. end end
-
Behavior.snapto
I see two problems with the documentation of this method (I would like to call it a property, but that is probably my C# habit talking):
The "Returns:" section says it returns true or false, but it actually returns one of the 4 values listed in the description above "Returns:" (the default seems to be SnapTo_Arbitrary). The first sentence of the description ("The snapto method is used to verify the status of a component's "snap to" behavior.") also implies that the return value is a status, not the actual "snap to" selection.
It would be very helpful if the documentation of this method would make it clear that the value of Behavior.snapto works in conjunction with the value of Behavior.is2d to set the "glue to" behavior. If is2d equals false, the component will not glue to anything, no matter what value snapto returns. If is2d equals true, the component will glue to faces matching the snapto value.
I donβt think it is at all clear that these two (snapto and is2d) are related. It would be helpful to include a reference to snapto in the description of is2d, also.
This second issue applies equally, if not more, to the snapto= and is2d= methods.
-
Pages.add should contain some of this information about the meaning of the flags argument.
[ and also, Pages.add returns a Page object, not nil. ]
# The Page Constants Object.constants.grep /^pag/i ["PAGE_USE_SECTION_PLANES", "PAGE_USE_ALL", "PAGE_NO_CAMERA", "PAGE_USE_CAMERA", "PAGE_USE_RENDERING_OPTIONS", "PAGE_USE_SHADOWINFO", "PAGE_USE_SKETCHCS", "PAGE_USE_HIDDEN", "PAGE_USE_LAYER_VISIBILITY"]
model = Sketchup.active_model pages = model.pages index = 0 page = pages.add("New Page", PAGE_USE_ALL, index)
If you want to pick and choose which options, bitwise OR (
|
) the options together:model = Sketchup.active_model pages = model.pages index = 0 page = pages.add("New Page", (PAGE_USE_HIDDEN|PAGE_USE_CAMERA), index)
-
From my tests,
write_image
will accept several common image formats - .jpg, .bmp, .png at least. There is no mention of this in the docu. Just include the extension in the filename - as in "path/to/my_image.png"If you do not provide the optional width or height, the image uses the View Size for the written image.
write_image returns
true
on success orfalse
on failure, not nil (from my experience.)
Advertisement