Text position problem
-
Hi azuby
Thanks for your help - but I still have the problem that the text gets cut off - se images.
The 'test' text is added via mouseclick and does not have this problem
EDIT
Is this the proper group/place for such technical questions ?
-
Hmmm maybe it's a problem with OpenGL?
azuby
-
If I afterwards manual move the text 200mm, on the blue axis, the problem dissapers.
But how do I do this automatic ?
point = Geom::Point3d.new object.bounds.center
Adding 200mm to the Z axe of point ?Sorry, I have quite a lot questions.... and still a lot to come
Thanks
Jorgensen -
Adding a small leader to the text would solve the problem (if you don't mind having such text)
For instance:
text = model.active_entities.add_text "your_text_here", point, Geom::Vector3d.new(0,0,10)increase vector.z value to get greater leader. What I often do is to have the same value for text height and vector.z value
Hope this helps, -
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
Advertisement