Hmm thanks TIG, i'm going to look into that.
Quintus
Hmm thanks TIG, i'm going to look into that.
Quintus
Hi all,
Im trying out the new ruby installer in Sketchup to install plugins from a *.rbz file.
Would there be a possibility to include components and materials in this rbz-file and let Sketchup install those properly? Previously we allways had customers extract Plugins, Components and Material folders in de the Sketchup directory but the new RBZ way could be a lot easier for some people.
Thanks in advance and happy modeling,
Quintus
@qverburg said:
Hmm the thickning trick seems to work. Alltough it is quite a work around and hard to fix. In my script the inner lattice can be smaller than the outer ring. Thats why I create them seperately.
I attached a SKP where you can see the procedure and another "error" I get in certain union situations. Would be great if you can shine a light on it
Classic, forgot the attachment!
Hmm the thickning trick seems to work. Alltough it is quite a work around and hard to fix. In my script the inner lattice can be smaller than the outer ring. Thats why I create them seperately.
I attached a SKP where you can see the procedure and another "error" I get in certain union situations. Would be great if you can shine a light on it
Just tried again but the 4 inner holes keep getting filled.
Im using windows7 and sk8pro 8.0.4811
@tig said:
The simpler 'outer-ring/fame' has been modeled inside out, with its backs all looking outwards.
I found that if I edited it, reversed one face and then used orient, then the 'union' of the two solids worked just fine - with the 'lattice' getting the wider outer 'frame'...
Have you tried that ?
Hey TIG Thanks for your quick respons!
Actualy i did reverse all faces of That group once to check. I used ctrl-a and reverse faces. I"ll check again when i get home.
Thanks
Hi all,
I'm expierencing a problem with the union (and outer shell tool).
See my example file attached to this post.
When I union both objects some "holes" fill automaticly. It does this in all variations of my model where "the square holes" are not on the sides of the grid.
For a plugin im writing it's essential to do this unions correctly.
Is this a known bug and is there a work around?
Thanks in advance,
Quintus
Dear all,
Im having a strange bug with 2 groups which have the same material but give a different dark shading.
Without shadows its worse then with shadows turned on. Reversing a face gives the same result.
Anyone knows what is happening?
regards,
Quintus
Thanks for your quick response. I guess that probably is the problem.
Hi all,
I got this model which has really weird dark squares on the left and right side of the screen. I tried everything from styles to watermarks but I can't seem to get rid of them. I continued the model in a new sketchup file so it isn't bothering me anymore. But i would really like to know the cause of the problem. The origin was a v6 file but it stayed in v7 also.
Anyone has expierenced this before?
Regards,
Quintus
Thanks Im going to try both.
Now I can't seem to get the selecting device to work. I want to select the 2 oposite corners in the component but the best_picked doesnt support corners or intersections. Which function in the pickhelper should i use to get grip on a corner? ( Like the Line tool does)
thanks!
@tig said:
Make an empty temp group.
Add an instance of the component to it at the ORIGIN.
Make a a new face at z=0 with normal [0,0,-1] that is somewhat bigger that the component's XY bounding box.
Get the face's outer edges as an array.
Intersect the face with the component.
Erase the outer edges from the array.
Now the remaining face.outer_loop.edges will equal the cutting shape of the component
Get an array of the face.outer_loop.vertices and then convert those to their points.
Now get the transformation of the inserted component and apply that to these points.
You now have a list of points on the 'wall' outer face that correspond to the component's cutting hole.
You can erase the original temp group***.
Project these points using a raytest from their location along the vector face.normal.reverse
The first thing they hit will be the back face of the 'wall' - the point is what you want - this is returned in raytest_result[0] - check it's a face with raytest_result[1][-1].
You now have a list of points on the back face of the 'wall' projected from its front face.
Use these points to make a new face on the inner surface.
PushPull the face till it meets the front where the component is cutting its hole.
***When you make the temp component you can work out how deep it already cuts into any face it's glued on to by the amount of its bounding-box below Z=0 where it intersected with the temp face - use this as the maximum PushPull value so the inner reveals return just to the component's rear faces...
To make it really clever link the component-instance with the parts forming the inner hole with attributes - so it one is erased the other goes to, or it one is moved the other moves with it...
Wow thanks alot!
Im gonna work on this.
Regards,
Quintus
What my plugin should do is as follows:
The user selects a window component(dynamic component with variable width and height).
User places this component on a wall
user selects my function (while window is selected)
Functions does:
-recognize which face the component is glued to
-determine the corner points of te component
-create a face which is as big as the component (the face is on the same place on the wall)
-determine thickness of the wall
-push pull the newly created face into the wall
-place the component in the middle of the wall
basicly i have everything working on orthogonal walls. Problem is determining the corner points of the component when its on a nonorthogonal wall.
thanks for thinking with me
@thomthom said:
In regard to the checkbox value - did you read my link?
Yes I did thank you for that. Played with it for 2 hours but couldn't manage to read the checkbox values in that manner.
The only thing that worked was the getElementById but it still reports the checkbox as on when its not.
Hmm this is strange.
When I try to get the checkbox value in the javascript, it's again always on.
The hidden textbox method also doesn't work because I can't seem to set the textbox value. (and if I could, the checkbox would say its always on....)
Any ideas?
Hi Chris,
Thanks, I will try this. I'm not sure if the the bounding box will align to the new axes or will keep orientated to the old axes.
Wouldnt there be another method to define the outer corners of the window that are touching the wall? I'm not positive that using the bounding box is the way to go.
I'll give it a try anyway
thanks!
Hello dear Ruby coders,
Im making a script that places a window/door component which i have placed on a wall, into that wall.
So it has to define all outer corners that are glued to the wall, then make a face onto that wall and push/pull this away so a hole is made into a wall.
I have my script working, the only problem is that it only works when my wall is on a x or y axis. The reason for this is that i define my corner points of the window/door with the Boundingbox, and then check which of those points is on the face of my wall.
My problem is that the bounding box of an object is always orthogonal so when i try to place a window in a wall thats not paralel to a x or y axis, there are no bbox corners touching my wall.
Has anyone an idea to define the corners of my push/pull face in a different way?
Here is the code where i define my corners of the push/pull face with the coordinates of the bbox corners.
Its one of my first rubie scripts so the code is quite messy and inefficient I guess...
Thanks for any help!
#requesting all corners of the bbox
@@bbox = @@kozijn.bounds
#save all corners of the bbox in an array
@@pt = []
@@pts = []
@@pt[1] = @@bbox.corner 0
@@pt[2] = @@bbox.corner 1
@@pt[3] = @@bbox.corner 2
@@pt[4] = @@bbox.corner 3
@@pt[5] = @@bbox.corner 4
@@pt[6] = @@bbox.corner 5
@@pt[7] = @@bbox.corner 6
@@pt[8] = @@bbox.corner 7
m = 1
if @@nested == "true" #@@nested says if the instance is in a group or not
for q in @@group.entities
if q.typename == "Face"
#Check if corners of the bbox are on the face
for n in (1..8)
if q.classify_point(@@pt[n]) == 1 || q.classify_point(@@pt[n]) == 2 || q.classify_point(@@pt[n]) == 4
@@pts[m] = @@pt[n]
m = m + 1
glued = q #define which face the points are glued to
end #if
end #for
end #if
end #for
@@kozijn.glued_to = glued
@@new_face = @@group.entities.add_face @@pts[1],@@pts[2], @@pts[4], @@pts[3]
else
#define all points glued to a face
for n in (1..8)
if @@kozijn.glued_to.classify_point(@@pt[n]) == 1 || @@kozijn.glued_to.classify_point(@@pt[n]) == 2 || @@kozijn.glued_to.classify_point(@@pt[n]) == 4
@@pts[m] = @@pt[n]
m = m + 1
end
end
@@new_face = @@entities.add_face @@pts[1],@@pts[2], @@pts[4], @@pts[3]
end #if
Great idea!
Thanks for your helpfull and quick responses
@@testwindow.get_element_value("test") on @@testwindow.get_element_value("test") on
first one is with checkbox checked, second one without ckeckbox checked......
Hi all,
Im trying to get the state of a checkbox from a webdialog, but it seems that ruby thinks the checkbox is always on.
Here is some simple test code:
test.rb
def testing @@testwindow = UI::WebDialog.new("test", false, "test", 200, 200, 200, 200, true) html_path = Sketchup.find_support_file "test.htm" ,"Plugins" @@testwindow.set_file(html_path) @@testwindow.show end
test.htm
<html> <body text="FFFFFF"> <input type="checkbox" id="test" checked > </body> </html>
now when you run testing in sketchup, and the window shows up, try:
@@testwindow.get_element_value("test")
now turn the checkbox off and try it again.
What am i missing here?
Kind regards,
Quintus Verburg