-
Posts
739 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Posts posted by BrownTiger
-
-
Now I understand.
Ok here is the full label macro:
referenced ? obj = referenced : obj = owner
if $tree.nil?
$tree = Hash.new { |hash, key| hash[key] = {} }
end
id="p" + obj.object_id.to_s
#unless $tree['roofplanes'].has_value?(id)
items = Hash.new()
items['roof_plane']=id
items['pitch']=obj.automatic_label
items['area']=obj.surface_area
$tree['roofplanes'][id]=items
#end
result = "Slope Angle: " +(Math.atan2(obj.pitch,12.0)*180.0/Math::PI).round(2).to_s + "\n"
result += "Pitch: " + obj.automatic_label+ "\n"
result += "Area: " + ((obj.framing_area / 100.0 ).round(1)).to_s
result
-
17 minutes ago, ChiefPlagman said:
https://ruby-doc.org/core-2.4.0/Object.html#method-i-object_id
Just to be clear, object_id is provided by Ruby.
Thank you. I stand corrected.... It is Ruby exposed method....
I have looked at names ... and did not see it... My mistake
> owner
=> #<NVPublisher:0x00020b6aaa46b0 @names=["layer_set", "layer_line_weight", "layer_line_style", "layer_line_color", "layer_text_style", "layer_is_default", "layer", "drawing_group", "floor_number", "object_type", "line_weight_is_default", "line_weight", "line_color_is_default", "line_style_is_default", "line_style", "hole_area", "hole_perimeter", "visible_length", "num_lines", "is_closed", "is_hole", "fill_color_from_background", "fill_color_from_layer", "pattern_vertical_spacing", "pattern_horizontal_spacing", "custom_pattern_scale", "pattern_angle", "transparent_pattern", "fill_line_weight", "automatic_label", "suppress_label", "angle", "pitch", "rafter_info", "overhang_area_3d", "projected_overhang_area", "surface_area", "framing_area", "projected_area", "framing_perimeter", "layers", "soffit", "skylight_width", "skylight_height", "skylight_description", "skylight_size", "gable_fascia_depth", "gable_fascia_width", "gable_fascia_length", "gable_fascia_size", "eave_fascia_depth", "eave_fascia_width", "eave_fascia_length", "eave_fascia_size", "drip_edge_length", "num_downspouts", "valley_flashing_length", "ridge_vent_length", "edge_flashing_length", "sloped_edge_flashing_length", "skylight_room"]>
-
Disclosure: I am a software developer, and this is my hobby.
One of the issues I have is Chief Architect they are not exposing "ChiefUUID"
They should really provide true and complete Ruby access to the object [object accessor], and stop been a p*, and may be even let Ruby modify.
Every plane has this hidden value "object_id". It is never disclosed by ChiefArchitect, and appears to be immutable.
[ChiefUUID would have been better but we do with what we have]. As you can tell to form the key I just added a letter "p": id ="p" + obj.object_id.to_s
So as far as I can tell... all planes should be enumerated.
$tree['roofplanes'][id]=items
Because, I think, the id is unique, the hash map $tree[ 'roofplanes'] should only allow ONE value for the key [id].
Unless the Ruby garbage collector is not working correctly or it needs:
$tree['roofplanes'].rehash after the assignment...
Now if you open multiple plans with this macro the global $tree may be populated by the different plans.
In this case I would recommend may be make a triple hash. $tree[project_name_key][object_type_key][object_id] .?
Other possibility is to check $tree['roofplanes'].has_value?(id) and if so don't bother with .. Something like
unless $tree['roofplanes'].has_value?(id)
items = Hash.new()
items['roof_plane']=id
items['pitch']=obj.automatic_label
items['area']=obj.surface_area
$tree['roofplanes'][id]=items
end
-
Computing roof slope angle best accomplished by:
result = "SLOPE ANGLE: " +(Math.atan2(pitch,12.0)*180.0/Math::PI).round(2).to_s
-
Show the roof area macro
#initialize
result=""
sqft=0
#for each roof plane
$tree["roofplanes"].keys.each_with_index do |key,index|
s= index.to_s
#concatenate all information
result += "Plane: " + s +"\t" + $tree["roofplanes"][key]['pitch'] + " \t" + $tree["roofplanes"][key]["area"].round(0).to_s + " sq ft\n"
#sum the sqft
sqft +=$tree["roofplanes"][key]["area"].round(0)
end
#append the total
result += "Total: " + sqft.to_s + "sq ft\n"
result
-
# If referenced assign obj = referenced otherwise obj = owner
referenced ? obj = referenced : obj = owner
#Next create new Hash tree if global $tree does not exists (nil)
if $tree.nil?
$tree = Hash.new { |hash, key| hash[key] = {} }
end
#Next we will prepare new hash map "items" with value pairs 'roof plane' = unique id, pitch = label, etc
id ="p" + obj.object_id.to_s
items = Hash.new()
items['roof_plane']=id
items['pitch']=obj.automatic_label
items['area']=obj.surface_area
#Next place the items this two dimensional hash map $tree['roofplanes'] (Unique Id) = hashmap
$tree['roofplanes'][id]=items
#Display the automatic label or whatever you want to see, now that we stored the information about our roof plane
s =obj.automatic_label
s
-
I posted how to enumerate roof planes using ruby
- 1
-
In version X10 Chief was exporting name, value pairs. Since X11, Ruby integration significantly improved. Now Ruby engine has access to objects
So we have
drawing_group: 21
floor_number : 1
layer : cad,_plan_view
layer_line_color : 255
layer_line_style : 111
layer_line_weight : 18
layer_set : "Plan View Set"
layer_text_style : "Default Text Style"
line_style : setback_line
line_weight : 18
object_type : cad_line
Still a little different from the app, and not all properties are available...
-
You may have to provide a picture of what in the world are you talking about...
A layouts that have a border, Some plan or plan view sent to a layout.
Are you talking about some border over section or some other view? A border around PDF, or TIF that is embedded?
And if you sent something to a layout did you send it as plot lines, live view?
Confused
-
On x11 you can right-click and "find in the plan". Whatever X11 shows you for stud count is incorrect because it assumes like 50' [whole wall] sections.
In addition odd shaped walls sometimes give you really funky results, and watch for attic framing, none of it may be needed.
-
ln - s (symbolic links ) are fine. They are processed at the OS level, vs cloud services that asynchronously updates the cloud images.
Dropbox /google drive is too pitifully slow IMHO.
I suspect with a good SAN, times will be the fastests. I assume you have SAN and not NAS. With MacOS I would have no issues with mounting SAN volumes placing shared components on them, with SANs computers communicate with SAN disk arrays using the SCSI protocol. The network is formed using SAS/SATA fabrics, or mapping layers to other protocols such as Fibre Channel Protocol (FCP) that maps SCSI over Fibre Channel, or iSCSI that maps SCSI over TCP/IP. The SANs are much faster, the issues observed by Renerabbitt are not necessary applicable to SANs.
They are not a synchronized images - rather direct reads and writes. SANs were designed to handle the shared components multiple access, etc issues.
-
-
I do not believe a file name is relevant. Calibz is just a zip version of .calib, (SQLite3 database file).
Without me providing you with tools to read it ( If I remember correctly LibraryViews table XML contains a version), the second best option is to check the number of library objects.
I believe you have the newest version.
-
-
-
-
Odd, if you do this in Windows you will get Import Drawing Assistant
020500_ramboard-detail-drawings-instructions_rev1-051517.dwg
-
-
Oh no .... Windows issues again LOL. Let me try one last time.
Hilight you DWG file with the mouse.
Holding shift key > Right click and select "Open With" > See if X11 showing on that list
If available select your CA X11 check the checkbox Always use this App to open DWG files... Done
If not select "Choose another app" ... Scroll to the bottom to "More Apps" ... "Look for another Apps on this PC"
Navigate C:\Program Files\Chief Architect\Chief Architect Premier X11 (64 bit)\Chief Architect Premier X11.exe
Now check the checkbox Always use this App to open DWG files...
Even if you didn't, after opening file in X11 you will get Chief architect X11 added to the list of available applications.
BT
-
Quercus Robur Core Catalog > Plants > Trees > Deciduous
Pyrus (pear) Core Catalog > Plants > Kitchen Garden > Fruits, Berries, & Nuts > Pyrus
Magnolia Core Catalog > Plants > Trees > Deciduous > Magnolia
Azalea: Core Catalog > Shrubs > Deciduous > Rhododendron luteum > Rhododendron luteum Azalea pontica
Spirea: Core Catalog > Shrubs > Deciduous > Spiraea
Rosa: Core Catalog > Shrubs > Deciduous > Rosa
Prunus Core Catalog > Trees > Deciduous > Prunus
Thuja Core Catalog > Trees > Evergreen > Thuja >Thuja occidentalis
-
-
You may want to activate your signature when asking question
https://chieftalk.chiefarchitect.com/topic/18908-signature-here-at-chief-talk
1) When creating a layout copy and paste / hold position from page to page. That way the plan in exactly same spot on every layout page.
2) Check your line weights Working Set vs Electrical in aldo and if weights are enabled
-
-
Q: How do I get control over the macro-generated text on a roof plane?
in General Q & A
Posted
>Hello BT, Just trying to get the new revised version to work with the previously posted roof plane macro.
Thank you. Issues with the cut and paste. Corrected
>Would it be possible to return the Roof Plane # in the Roof plane label something like this ?
Add something like this:
result += "Roof Plane: " + obj.object_id.to_s
i.e.
result = "Slope Angle: " +(Math.atan2(obj.pitch,12.0)*180.0/Math::PI).round(2).to_s + "\n"
result += "Pitch: " + obj.automatic_label+ "\n"
result += "Area: " + ((obj.framing_area / 100.0 ).round(1)).to_s
result += "Roof Plane: " + obj.object_id.to_s
result