Text position problem
-
Thanks Didier - I added point.z = point.z + 6 - this helped
Jorgensen
-
BTW, your way of calculating (converting from inches2 to m2) areas is quite strange.
$area = (object.area / (39.3700787*39.3700787)).round $text = "#{object.layer.name}\n#$area m2"
Try this:
$text=Sketchup.format_area object.area
Whatever unit the user has set, area (numeric) will be converted to this unit (string) and a Β² is added to the text as well
-
Hi All
Thanks for your input.
@Didier
I have tried that - belive me - but I don't no why, but if I do an Object.area on a face that is 1000x1000mm I get an area of 1,550m2 ? And I have setup units in Model Info - strange ???Another problem. If I doubbleclick the mouse I get a 'attaced' text, that keeps the position inside the face, even if I move the sides. This does not happen when using Object.add_text does any know if it is possible to achieve this by script ?
What I'm trying to create is a small script that has the function as I have tried to sketch on the attached image. This would be very useful for me when sketching plans
The next problem - how do I get group names, add listing them inside a group and adding text inside this group - a lot to learn.....
-
Jorgensen,
Try attached script.
Acces it via context menu, when a single face is selected in the model.
It creates a formatted text on a layer "Areas".For the rest, I don't understand exactly what you mean (groups, and so)...
-
Hi Didier
I will have a look at the script.
What I main by groups. Is, that I have:
- a ground level wich is on Layer 00
- first floor in layer 01
On layer 00 (ground level), I would like a group that contains a 'area group' for each room, Kitchen, livingroom, and so on... .Each areagrop should have the name of the room, so that a script, can update the Text and area.
So, in the maingroup on layer 00, holds a text (on layer 0t Text) that says kitchen size ...., and a group named Kitchen (on layer 0A Area, so it can be turned off).
A bit dificult to explain
Jorgensen
-
OK, I understand.
This is doable, but I have not much time to help you by now
Remind me... -
Hi Didier
Thank - you have allready helped. I'll se what I can fix myself.
By the help from this forum, it might be possible
Jorgensen
-
Hi
I have a question about the Sketchup.format_area utility.
My model is in mm, but I would like the result to be in m2 not as Sketchup.format_area shows mm2 - is this somehow possible ?
Thanks
-
Its now going the right way...
I have one question.
I have a group on each level of the building (the levelGroup). Each levelGroup contains a number of groups, that holds info for each room, the area and name. roomGroups.I then doubbleclick, and get inside a levelgroup, and update the roomGroups.
To keep track of the roomGroups I use:
target = Sketchup.active_model.active_entities;
$areaObjects.push target.add_text text, coordinatesI then have an array $areaObjects, that cointain all the text added (roomGroups).
If I wan't to delete/update all the text, I can read the array again and then erase! them, but this will delete all the text on in all levelGroups.Is there a way to tjek if the roomGroup is inside the active group ?
Thanks
Jorgensen -
@unknownuser said:
I would like the result to be in m2 not as Sketchup.format_area shows mm2 - is this somehow possible ?
Yes:
Switch to meters unit just before the format_area instruction, then switch back to mm:old_unit=Sketchup.active_model.options["UnitsOptions"]["LengthUnit"] Sketchup.active_model.options["UnitsOptions"]["LengthUnit"]=4 then_call_the_format_area_instruction_here (result is a string so it would'nt be affect by later changes) Sketchup.active_model.options["UnitsOptions"]["LengthUnit"]=old_unit (to switch back to mm in your case
-
Hi Didier
Thanks for your reply. Just the way I would do, I just could'nt find the settings in Ruby.
One problem however, the text now becomes 14 Meters2 - should be 14 M2 - I guess I'll have to do somekind ereg_replace....
Thanks for your help.
Jorgensen -
Easy area = area.sub("eters ", "")
This is fun
-
I did an AreaFormat tool a while ago... see: http://www.sketchucation.com/forums/scf/viewtopic.php?p=12808#p12808
It could easily be adjusted to suit your current units if they are not listed... -
Thanks TIG - I'll have a look at it...
Right now I have a problem, actual the last before I can use the script at work...
I use this to tjek and delete objects in the active group:
def tmAreaDelete
objects_active = Sketchup.active_model.active_entities
for object in objects_active
if($areaObjects.include?object)
object.erase! unless object.deleted?
$areaObjects.delete object
end
end
endWhat teases me, is I have to run the tmAreaDelete tree times to delete all text objects - and I just can't se why It works if I skip the line '$areaObjects.delete object' but that can't be a good solution.
Jorgensen
-
And a other problem:
The array $areaObjects, is not saved inside the file - so next time it is loaded - one have to manuel delete all the textobjects and add newones -Is there a smart workaround here ?
Thanks
Jorgensen -
It seems that I can use
model = Sketchup.active_model
data = model.get_attribute "TM_area", "textObjects", "default"
and
value = model.set_attribute "TM_area", "textObjects", objects -
J:
You are deleting entities from the active entities list while you are iterating over the same list. In other words, you are scrambling the list whilst travesing it. Don't do that. Collect all your enities into a seperate list. Then interate through that list and delete them. CB.
Advertisement