algorithmic modeling for Rhino
Hi guys,
What is an elegant/possible way to figure the following problem. I would like to have a crenellation pattern (which you can also find on castles) going perpendicular through these defined points. Does someone have a suggestion? It would help me tremendously!
Yours sincerely
Obtained geometry
Desired patterns through points obtained above
Bewaren
Tags:
... The difference between the OEM edge list and the crenelated edges, are the culled lines from the (FE conn) list....
The difference is that IF an edge (from OEM Edges: as things are) is NOT a boundary/naked one THEN is "converted" into a polyline and stored in the crenelated Tree in a branch/path that is the same as the index of the edge (within the OEM Edges List).
This means that using the Faces to Edges (FE conn[ectivity]Tree) connectivity thingy ... the only question is: does the x edge index (as path) exists in the crenelated tree? (if yes get the polyline ... if no get the OEM Edge).
Ok that is crystal clear to me ;). So the poly-line curves that have to crenelated are known. What (perhaps in words) is the process in the script?
One crucial thing is that the teeth length should be a variable. Now I cannot control it. It seems to depend on (1) the minEdgeDiv and (2) the startOffset. Where I am aiming for is a deviation of teeth seen from the midpoint of the crenelated edges with a value of e.g. 75 mm. Still taken into account the start and end offset of e.g. 50 mm
This process already gives me much more info and a different look of how information is ordered! Really appreciate your information !
BTW:
A Brep (and/or a Mesh) is a mini-database that co-relates things the likes of Faces (BrepFaces of MeshFaces), Edges and Vertices. Meaning that we can have 9 possible combos as connectivity trees.
A BrepFace is a Surface or (in most of cases) a trimmed Surface (i.e. a Brep with a single BrepFace + trimming info) whilst a MeshFace is a triangle or a quad thingy.
In AEC we have (usually) many simple things "sampled" into complex (nested) combos ... thus the way that are "related" each other (and the whole assembly/component hierarchy) is far more important than the items. In Artistic/Decorative stuff the focus is (in most of cases) towards the items on a per se basis.
Restart from depth 0 (nesting is limited):
Ok that is crystal clear to me ;). So the poly-line curves that have to crenelated are known. What (perhaps in words) is the process in the script?
Er... hmm ... what process? You mean how are the crenelation is made?
One crucial thing is that the teeth length should be a variable. Now I cannot control it. It seems to depend on (1) the minEdgeDiv and (2) the startOffset. Where I am aiming for is a deviation of teeth seen from the midpoint of the crenelated edges with a value of e.g. 75 mm. Still taken into account the start and end offset of e.g. 50 mm
Teeth length is indeed variable (read further) But anyway .. I'll add some user controlled options for the teeth making. As it is indeed is controlled by the 2 as above variables (PLUS a "safe guard" check: if minEdgeLength / 3.0 < startOffset ... then startOffset = minEdgeLength / 3.0 ... meaning that you divide the remaining 33% and all the rest are "proportionally" to that [bigger edges, that is]). This yields as equal teeth(s) as possible for obvious reasons (recommended movie: Frankenstein Junior).
Ok that is crystal clear to me ;). So the poly-line curves that have to crenelated are known. What (perhaps in words) is the process in the script?
Er... hmm ... what process? You mean how are the crenelation is made?
Yes, is stated my question in a rather odd way. Can you explain me how is the crenelation pattern itself is made?
I am looking forward to the results, I will share final products/images as well in the coming weeks/moths.
These steps are "equal" to those used in the script to perform the crenellation pattern?
This example is easy to follow ;) !
Not exactly. The actual logic (the "magic box" , he he) has as follows:
What all these mysterious words do? They sample points into the polyline within the for loop by checking if i (the index of the division Points) is the first, the intermediate or the last and then they add the vectors (v1 for the first adjacent face, v2 for the other) depending on the even/odd index. As you may know: point + vector = a new "shifted" point. Flipping the v2 vector (the last boolean in the C#) allows you to viz the angle between the 2 adjacent faces (per edge).
To tell you the truth ... for me ... well .. the above few lines are far easier (and way faster) to write than the "equivalent" thing with components. Blame the Dark Side I guess (and ~500+K lines of code).
Jokes apart:
Thicken a given freaky crenelated Brep Face is not that easy: a teeth needs some space for the glue AND the sides need to be "tapered" in order to fit perfectly each other. Meaning: an offset for the crenelated closed Curve AND an other crenelated Curve (at the bottom). Then you join the Lofted Brep between the 2 Curves with the 2 planar Breps (top-bottom).
Additionally: well ... try to imagine "inserting" pieces into an already assembled combo > glue would do what glue does AND if the vault is made, say, from plywood ... well... an aesthetic disaster is asured
If the plywood is treated with some proper penetrating oil (AVOID varnish AT any cost) ... then the oil would "contaminate" the sides and glue won't work.
Other than that, I predict lot's of broken teeth (in the "sensitive" areas) not to mention broken nerves.
Here's me admiring a "similar" experimental vault that I made a million years ago:
Good morning ;),
Well that sounds logic the way you explain it, furthermore the timber will not be glued, I designed a hinged connection. Indeed some offset might be required but that will not be the biggest problem. Each teeth will be milled away for approx. 50% and a steel rod will act as a pin resembling a hinge. No worries, when they are produced (before march) I will share some images.
Your last version of CrenelateBrepEdges_VC did it already contain a variable for the teeth length parameter?
Btw is that image taken in the move Frankenstein Junior XD.
Well ... I would STRONGLY suggest to mastermind a suitable variable (linear) hinge and forget the teeth part. Why bother if the hinge can cut the mustard?
If the rod penetrates the teeth > Armageddon. Instead try to design a "framed" system: hinge is hidden (so to speak) within the frame and plywood acts just as a module top cover.
Other than that see the expected clash situations (straight cuts):
BTW: D was always available for the teeth "length" (the protrusion) since the first delivered version.
BTW: It's just me curiously looking like Mel Brooks (Young Frankenstein, my bad: not Frankenstein Junior).
You are getting the idea :D. Two things; (1) the pin itself is in the centre point of the plate thickness at (t/2). (2) the milling settings will mill (d/2) extra because the poly-line we are now creating is the centre point of the mill path. Furthermore the change in angle is minimal only a few degrees (5-10) and not 20 or 30 or even more.
BTW: D was always available for the teeth "length" (the protrusion) since the first delivered version.
Here I meant the variable length in the direction of the line itself (width so to say). Because it is a set length per project e.g. 75 mm as I explained a few posts ago.
I'll add more freaky teeth control soon.
Other than that why not doing some Cyborg thingy? (AI is approaching rather fast). Imagine plywood connected with paranoid hinges - some can being "locked" (and then optionally a second "false ceiling" layer [sandblasted glass is best] that hides the hinges and the mandatory pink LED arrays):
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by