New API doc - typos and questions
-
@jim said:
new can accept a hex value (not string) as the parameter: for example 0xFF0000 (undocumented)
But, it reverses the red and blue values. Here is a Console session. (bug)
> Sketchup;;Color.new 0xFF0000 > Color( 0, 0, 255, 255) > Sketchup;;Color.new 0x0000FF > Color(255, 0, 0, 255) >
ANY numeric input is bugged, no matter Fixnum or Hex or Octal. NOT TRUE... see my next post
[Console Sesion]c1 = Sketchup;;Color.new( 255 ) Color(255, 0, 0, 255) # You'd expect (0,0,255,255) ...but c2 = Sketchup;;Color.new( 256 ) Color( 0, 1, 0, 255) # that's just plain weird!
The color "DarkOrchid" = Hex:#9932CC RGB: 153,50,204
Using the ColorName all seems to go well on "new"
[Console Sesion]c3 = Sketchup;;Color.new("darkorchid") Color(153, 50, 204, 255) # all OK so far, lets get the integer output... c3.to_i 13382297 # is that right? Let's see what Ruby says... "0x9932CC".hex 10040012 # so the .to_i ouput is NOT correct.. #### UPDATE; Ruby returns the correct integer for an ARGB string, #### #### but not the correct integer for an RGBA color, which OpenGL uses. #### # ... but what is integer 13382297 for? #### UPDATE; it's for the RGBA color "DarkOrchid" #### see the next 2 posts. "0xCC3299".hex 13382297 # it's for RGB;(204, 50, 153) NOT (153, 50, 204)
So.. Sketchup::Color.to_i has the same bug. NOT TRUE... see my next post.
I'm working on aColor Mixin for the SKX project that ... needs more work. -
sheeeesh! No wonder it was all confusing.
-
A TEMPORARY fix for dealing with the differing formats of color integers.
Adds 4 methods to Integer (and subclasses Bignum and Fixnum.)
Get it in the main Ruby Discussion forum, thread:
[Ruby Extension] for Sketchup color integers -
PickHelper.path_at
PickHelper.depth_at
PickHelper.path_at
PickHelper.transformation_at
All these are described as index 1 being the root element. But that's not in my experience. I was usingPickHelper.path_at
andPickHelper.transformation_at
for one of my scripts where I was drilling down through groups/components. When usingPickHelper.transformation_at(1)
to get the global positions I would getnil
half the time.PickHelper.transformation_at(0)
worked instead. -
PolygonMesh.uv_at
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/polygonmesh.html#uv_at
There are two arguments:
PolygonMesh.uv_at(int_index, bool_front)
PolygonMesh.uvs
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/polygonmesh.html#uvs
This requires a boolean value as argument.
true
returns front UV data set.
false
returns back data set. -
PolygonMesh.add_polygon
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/polygonmesh.html#add_polygonI can't seem to add points like the example does.
Instead, I must first add each point using
PolygonMesh.add_point
and then providePolygonMesh.add_polygon
with index values that refers to the points.In general this
PolygonMesh
seem to have many errors in the description of the methods, arguments and usage. Recommend a closer revising of this section. -
Entities.fill_from_mesh
http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#fill_from_meshsmooth_flags
does not default to 0. Seems to default to 12 (soft and smooth)
weld_vertices
- what does this really do? I can't see any difference in the resulting geometry. -
Entities.add_faces_from_mesh
http://code.google.com/apis/sketchup/docs/ourdoc/entities.html#add_faces_from_mesh@unknownuser said:
Returns:
faces
an array of Face objects if successfulIn my tests it returns 0 - not an array.
-
@thomthom said:
PolygonMesh.add_polygon
http://code.google.com/intl/nb/apis/sketchup/docs/ourdoc/polygonmesh.html#add_polygonI can't seem to add points like the example does.
Instead, I must first add each point using
PolygonMesh.add_point
and then providePolygonMesh.add_polygon
with index values that refers to the points.That's weird. It works just fine for me.
-
Can you post a quick example?
-
Ah! That's what I tried. Using a normal Array as substitute of Point3D. How odd that this method suddenly don't let you interchange arrays and Point3Ds...
-
now I see why it doesn't work with arrays:
mesh = Geom;;PolygonMesh.new mesh.add_point([0,0,0]) mesh.add_point([1,0,0]) mesh.add_point([1,1,0]) mesh.add_point([0,1,0]) mesh.add_polygon([1,2,3,4]) Sketchup.active_model.entities.add_faces_from_mesh(mesh)
you can use an array to index the points directly (for some reason, starting at 1)!
Can you test whether this is faster than point_at?
-
I will see over the weekend. I found some slowness by having to use
.add_point
and then later use.point_index
to build the polygons. building my own hash of Point3Ds and the index I got fromadd_point
was faster.Hopefully adding points in the
add_polygon
methods directly will be faster.Oh yea - the index start at 1 is annoying as well.
-
I think I found what your problem is.
This works:
mesh = Geom;;PolygonMesh.new mesh.add_polygon(Geom;;Point3d.new(0,0,0),Geom;;Point3d.new(1,0,0),Geom;;Point3d.new(1,1,0),Geom;;Point3d.new(0,1,0)) Sketchup.active_model.entities.add_faces_from_mesh(mesh)
This doesn't:
mesh = Geom;;PolygonMesh.new mesh.add_polygon([0,0,0],[1,0,0],[1,1,0],[0,1,0]) Sketchup.active_model.entities.add_faces_from_mesh(mesh)
EDIT:
You can put the arrays inside of another array to get it to work:mesh = Geom;;PolygonMesh.new mesh.add_polygon([[0,0,0],[1,0,0],[1,1,0],[0,1,0]]) #this works Sketchup.active_model.entities.add_faces_from_mesh(mesh)
-
Using
.add_points
first and using index references for.add_polygon
seems faster than usingPoint3d
's. -
General
Class and method names could be turned into links
to the appropriate API page, for ease of navigation.Sentences should begin with a capital letter and end with
a period (etc). Phrases should not.If a modifying phrase is used at the end of a sentence,
a comma should be added for clarity:the name of the attribute dictionary if successful dictionary,
Specific
http://code.google.com/apis/sketchup/docs/ourdoc/animation.html
animation -> animation ruby -> Ruby ... to pause, only certain ... pause;
http://code.google.com/apis/sketchup/docs/ourdoc/appobserver.html
... a 2nd model ... second Useful for if you need ... --- This is useful if you need ...
http://code.google.com/apis/sketchup/docs/ourdoc/array.html
The SketchUp Array class adds ... --- SketchUp adds ... Specifically, it contains methods ... --- Specifically, it adds methods ... ... arrays of 3 coordinate ... three ... vector. it returns ... It
http://code.google.com/apis/sketchup/docs/ourdoc/attributedictionaries.html
... all of the attributes dictionaries. attribute
http://code.google.com/apis/sketchup/docs/ourdoc/attributedictionary.html
Although the page does not discuss this, setting a
custom attribute with a key that contains upper-case
letters does not work.The page does not indicate how to set an attribute
(eg, '=LenX+20') to be used as an expression.In the entry for AttributeDictionary.each, the "value"
argument is being formatted as part of the description
for the "key" argument.Ditto for AttributeDictionary.each_pair.
-
On the API docs pages, in the left nav column, whenever you have made a link bold, the cursor changes to a caret instead of the hand cursor. I suspect it's the <b> and </b> tags doing this.
example from the API HTML source:<li><a href="/apis/..../model.html"><b>Model</b></a></li>
Perhaps if the bold tags were outside the anchor tags?
<li><b><a href="/apis/..../model.html">Model</a></b></li>
If the css specifically set a tags such:
a {cursor:hand}
the nested bold tags should inherit their parent's cursor setting (according to the css reference.) -
The bold tag should not interfere with the cursor regardless if it's inside or outside the link element. It's default cursor property is
inherit
. It's either some override or other quirk. Could be a browser quirk.
In FF3.5 I don't see this behaviour. What browser do you use? -
@thomthom said:
In FF3.5 I don't see this behaviour. What browser do you use?
Currently still using MSIE 7
P.S.: at MSDN it indicates if the cursor is not explicitly set, the browser decides; so it may indeed be a MSIE quirk. (I have MSIE 8 and FF on the computer in another room, I'll check and see how the site looks on that machine later today.)
-
Advertisement