[Plugin] Face2Frame - Updated 27-Mar-2014
-
That is the 'sign' error.
Which means for some reason you do not have the 'sign' function added to Ruby by some other tool...
It's easily fixed by editing the script at line #433.
I have PM'd you [and Sdmitch] a working copy...
BUT Sdmitch ought to fix it officially and post an update... -
Sorry about the sign function problem that some have experienced. It never was a problem for me.
A new version with TIG's fix has been posted.
-
Thank You sdmitch and TIG, the updated plugin work perfectly.
This place is such a wealth of knowledge and sharing!!!
Now off to sdmitch's blog, to check out some of the very cool sounding plugins........
Have A Great Day!!!!!
Wayne -
Glad it's fixed.
I've never come across this '
sign()
' method before, although I can confirm that I have it auto-loaded into my Sketchup Ruby, even without DCs loading, and there's no 'sign' of it in any RB scripts I have that I've grepped - so I suspect an unidentified RBS file adds it, and if a user doesn't have that loading then they are screwed...
I'd be interested to learn where 'sign()
' originates...Meanwhile using the 'comparator'
n<=>0
returns either 0, 1 or -1: which, when used with * effectively uses the 'sign' of the number'n
' in a calculation, without passing its real numerical 'value'. -
I'm really not 100% sure where I found the sign function but I believe it was in the Ruby Console. Apparently I typed something like sign(-5) and it returned -1 so I assumed that it was a common function. I do have Ruby 1.8.6 installed so maybe that's why it works for me.
-
I too get
sign()
in the RC... but with a standard SUp-Ruby only installation and DCs etc disabled I still get it.
And it's not deined in any .rb files I have loading...
So I must assume that there a .rbs file loading from somewhere that adds the global method...
The alternative 'standard' way ofn<=>0
is easy enough though...Another one that sometimes trips up scripters is
group.definition
[which is needed for adding instances of a group into another entities context etc, when 'copying' or 'moving' it to mimic Copy/Cut/Paste_In_Place...] - the methodcomponent_instance.definition
does return the component's definition and some 3rd party tools addgroup.definition
to the mix... but if you use that method and the recipient of your script hasn't got the other 3rd party script that adds it, then they'll get errors. The 'safe' way is to usegroup.entities.parent
which returns that group's definition properly... -
this is a very cool script!
attached are a couple of examples of it in use. couple of things - the header spacing looks like there is overlap. also, after using the tool it's somewhat arbitrary if the dialog comes back or not
in example #1 i'd also tried to use it on a floor and on a ceiling. it's mostly there. in example #2 i tried to use it for a "soffit" and the vertical bits work as expected but the horizontal ones (like #1) are not computing right. this is definitely a great bit of work however it ends!
-
Given the fact that the plugin was designed for vertical walls, I'm not surprised that it had a problem with floors and ceilings.
The apparent overlap of the headers is the 3/4" plywood spacer between the headers.
-
@unknownuser said:
The apparent overlap of the headers is the 3/4" plywood spacer between the headers.
Yes that was my addition... Here in America on the jobs that I've worked we use Plywood in our headers.
-
I haven't laminated headers in a decades...energy efficiency dictates 4x10 or 4x12 headers with 2 inches of foam insulation or spray foam on fully sheathed structures.
-
@mics_54 said:
I haven't laminated headers in a decades...energy efficiency dictates 4x10 or 4x12 headers with 2 inches of foam insulation or spray foam on fully sheathed structures.
Rich Boy...
-
I must admit I have not framed a house in probably 20 years and I don't provide framing details as framers from different areas do things differently and I assume know their trade better than I. So I would defer to those who know better.
-
You're warm weather too...I do arctic construction.
-
i wasn't sure if that was a laminate or not but it's ok. in general, i see a lot of newer construction with the laminated i-beam for the headers (similar to floors and rafters) and a foam fill. i think the headers work as-is and folks can draw any details necessary to describe their preferred approach
it would be really cool if you could "x" the ends of the lumber so a 2D / wireframe view can show it like a construction plan would...
-
@gullfo said:
i wasn't sure if that was a laminate or not but it's ok. in general, i see a lot of newer construction with the laminated i-beam for the headers (similar to floors and rafters) and a foam fill. i think the headers work as-is and folks can draw any details necessary to describe their preferred approach
it would be really cool if you could "x" the ends of the lumber so a 2D / wireframe view can show it like a construction plan would...
I considered that X as well, but not only at the ends but two faces all the way through studs, so that any stud in any location would show in sections as such. It would jump the polys up quite a bit but I don't think that would be a very big issue.
-
Just posted an update to Face2Frame. Now does floors, faces on the XY plane, and adds "X"s to ends of studs, headers and/or joist.
-
I'm french and i'd like the same famous plugin in metric units !
A dream for woodworkers....
-
@unknownuser said:
I'm french and i'd like the same famous plugin in metric units !
A dream for woodworkers....
Sorry, I don't do metric.
-
You can 'metricate' it relatively easily...
@wall_type = "Ext" #unless @wall_type @stud_size = "2X4" #unless @stud_size; @stud_space=16.inch #unless @stud_space @header_size = "2X8" #unless @header_size @corner_type = "A" @thickness=0.0
could become
@wall_type = "Ext" #unless @wall_type @stud_size = "50mmX100mm" #unless @stud_size; @stud_space=400.mm #unless @stud_space @header_size = "50mmX200mm" #unless @header_size @corner_type = "A" @thickness=0.mm
Then in the html code... make similar edits so
<option value='2X2'>2x2</option>
...
<option value='16\"' selected>16\"</option>
becomes
<option value='50mmX50mm'>50mmx50mm</option>
...
<option value='400mm' selected>400mm</option>
and so on...
Now the cases for the stud sizes...
case @stud_size when "2X2" : dx = 1.500.inch; dy = 1.500.inch;
...
becomes
case @stud_size when "50mmX50mm" ; dx = 38.mm; dy = 38.mm;
OR whatever...
Fix all 8 or so of those sizes...
unless @wall_type=="Int" || (@stud_size!="2X4" && @stud_size!="2X6") case @stud_size when "2X4" case @corner_type when "A" ; studs=self.A_2X4(xa,ya,p,v,dx,dy)
...
Needs to be looked at...
unless @wall_type=="Int" || (@stud_size!="50mmX100mm" && @stud_size!="50mmX150mm") case @stud_size when "50mmX100mm" case @corner_type when "A" ; studs=self.A_50mmX100mm(xa,ya,p,v,dx,dy)
...
Then rename the matching
def A_2X4(vx,vy,p,v,dx,dy)
as
def A_50mmX100mm(vx,vy,p,v,dx,dy)
etc
The parts like1/2" plywood spacer
need0.5
replacing with12.mm
or whatever is the equivalent ?
Parts of the code likedx+0.01
which add a 1/100" spacing could be adjusted to0.25.mm
or some other small metric equivalent ?
As can [ruby:13xikt90]dx2-0.02[/ruby:13xikt90] to be [ruby:13xikt90]dx2-0.5.mm[/ruby:13xikt90]
It just a matter of steps through every line and deciding what is needed... -
Counting in multiples and intervals of 10 is sorcery... Witch craft I say! Someone get a rope and a rock.
Advertisement