ace Syntax." eCAADe 2013 18 (2013): 357.
http://www.sss9.or.kr/paperpdf/mmd/sss9_2013_ref048_p.pdf
The measure Entropy is newer. I hereby explain it (from my PhD dissertation):
Entropy values, as described in (Hillier & Hanson, The Social Logic of Space, 1984) and specified in (Turner A. , “Depthmap: A Program to Perform Visibility Graph Analysis, 2007), intuitively describe the difficulty of getting to other spaces from a certain space. In other words, the higher the entropy value, the more difficult it is to reach other spaces from that space and vice-versa. We compute the spatial entropy of the node as using the point depth set:
(11)
“The term is the maximum depth from vertex and is the frequency of point depth *d* from the vertex” (ibid). Technically, we compute it using the function below, which itself uses some outputs and by-products from previous calculations:
Algorithm 4: Entropy Computation
Given the graph (adjacency lists), Depths as List of List of integer, DepthMap as Dictionary of integer
Initialize Entropies as List(double)
For node as integer in range [0, |V|)
integer How_Many_of_D=0
double S_node=0
For depth as integer in range [1, Depths[node].Max()]
How_Many_of_D=DepthMap.Branch[(node,depth)].Count
double frequency= How_Many_of_D/|V|
S_node = S_node - frequency * Math.Log(frequency, 2)
Next
Entropies [node] = S_node
Next
…
re looks like a mesh to me. Apparently the Mesh class in RhinoCommon has no method to unweld edges. So you will have to implement it yourself. Of course you need to have a basic understanding of how data (vertices, edges, faces) are stored and structured in a mesh if you want to do this.
Assuming that the edge you want to unweld is shared by 2 faces, I can imagine the algorithm will look like something like this
1. Determine the 2 vertices A and B at the two end of the edge (by using the TopologyEdge property of the Mesh class)
2. Duplicate these 2 vertices to get 2 new vertices, called A' and B'
3. Choose one of the two faces that share the edge (again, use the TopolgyEdge property)
4. The chosen face will have four vertices A, B, C and D.
5. Create a new face from A', B', C and D.
6. Remove the old face (otherwise we would have two overlapping faces)
Have a look at the Mesh class in RhinoCommon
http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry...
... and MeshTopologyEdgeList class
the http://4.rhino3d.com/5/rhinocommon/html/AllMembers_T_Rhino_Geometry...…
Added by Long Nguyen at 9:42am on January 15, 2015
is the way the component was designed, but I love it and have used it multiple times.
You state:
Now for your position 3 the angle is either 0° or 180°. Since calculating the angle will always return both angle and reflex angle, you need to decide, which to use. AlignPlane uses minimal rotation. Hence your WorldXY will get no rotation at all for your position 3.
However... that's not actually true or what is happening. If you look closely at the image supplied in the original post you will see that the plane displayed at 180 is indeed rotated and the X vector is indeed pointing to -X. To double verify that I extracted the X vector from those planes and displayed them... clearly you can see in the image below that the AlignPlane component is rotating the plane at 180.
Now... to get back to the original issue. The problem I pointed out in my original post was not with the AlignPlane component, but rather with the OrientDirection component. It seems to me that component has an issue when fed a target direction of -X {-1;0;0} for a target vector.
To eliminate the confusion caused by the AlignPlane component I eliminated that component from the design and simply used rotated vectors as input to the target direction of OrientDirection. You will see that the results are the same... when given a target direction of {-1;0;0} the object is not rotated, while any other vector input does rotate the object.
I've attached the updated gh file demonstrating the issue using rotated vectors as the input for dB target direction of the OrientDirection component.…
at STL files of "thickened" wireframes.
The problem underneath, is that we are not dealing with 2d or 2.5d meshes, but a bunch of lines, intersecting in 3d vertex, wich globally are not topologically related, but its ideally a 3d spatial structure.
As fas as we know:
option1: mesh/solid boolean
>between tubes, for the edges, and spheres at each vertex.
>it happens to get many errors in Magics & crashes quickly with big structures and many meshes.
option 2: isosurface
>either isosurf , or realflow works fine for high blending needs, and small pieces
>looks always good but does not seem to fit slender tubular structures fabrication purposes
option 3: 3-matic software
>used by prototyping industry, seems to repair everything
>expensive, unaffordable, exceptionally
option4: topological extrude
>topologically solve the extrusion of a vertex with many edges, generating non overlapped geometry. For 2d and 2,5 D, it works, but our attempts in maya fail everytime we try with 3D vertices.
> we believe there has to be a geometrical mesh trick
(we imagine Giulio Piacentino's Weaver Bird could have this useful feature)
We'll be waiting for suggestions and solutions (or cases)
Thanks
Enrique & Pep…
ized triangles? Aesthetics? Constructability/financial? Frankly, much of the diagrid construction I've worked on and know about doesn't worry about same sizes but rather maximum and minimum sizes, and tolerances.
3. You could aim for families of sizes: understand the tolerance of the system as constructed and group similar panels by size and shape so that you could potentially have 10 of A, 8 of B, 4 of C, and 2 of D or something.
4. I highly recommend looking at Evolute Tools. It has all sorts of optimization of meshes that would allow you to control of size, shape, etc.
5. Finally, I don't think you want a simple mapping of a diagrid to your surfaces. I say that because of the way your form pinches down to a point. One thought would be to create a larger surface that has a more rectangular boundary, panelize it, then trim the panels. Then all the internal panels would be quite similar and you'd only have irregular edge panels.
Just a few thoughts.
That's my two cents!…
always working this way when a
2d-matrix tree structure is needed. I supposed many of us are using this logic
a lot.
It'd always be better if it's in 3 or 4 etc. dimensions.
best regards…
o a multiplication between two lists of N matrixes of 6x6.
So far, i've been working with them as data tree, therefore i have a "3 dimensional" setup(Paths are [X,Y}(Z))
i'm an absolute begginer in any programming language, but so far i've done something like this:ps: d is just an input, thats the number of dimensions,
both k and T are the lists of matrixes.well, i'm hoping to get one matrix list as an output, what is what i attempted by the c{m} up there, and if possible eventually(after some more operations) bring them back to data tree format.any ideas?Thanks!Bruno…
Added by Bruno Galvao at 1:19pm on February 20, 2014
at keeps me from modifying 'easier' the structure (in the same time not much time to study it since its for school). What I am intending to do next is to create 2 vertical 'pillars' (always in space frame), placed on the extremities, which would have its starting points(of the lines that generates the frame) at the center of a certain sphere (for exampling for the length 3 spheres..)going perpendicular to the 'ground' (plan x,y). So I do understand more or less how it works and all, but don't know the use of many functions from GH (started using since september 2014)....
Could please someone help me, ( if possible explain me) how to do it what to use ( using a language for a Noob to understand) Thx to whoever responded to my help 'demand' and may you be blessed :D
if it makes it any clear what i need ;)…
Added by Gangura Petru at 2:46am on October 14, 2014