had):
You can see that the 4 rings have different paths {0;0;0},...,{0;0;3}. That's why [Dif] component will not treat them as a "set of Breps"(leave your mouse pointer over the component to see what inputs it expects) but separately. So it will do 4 subtractions (the output will be 4 Breps).
But if you flatten this data tree into a single list you get this:
Now all 4 rings are in a single list and [Dif] component can treat them as a "set of Breps"
Notice also how the wires change (single line for one object, double line for one list, double dashed line for a data tree). Now the output of [Dif] is one Brep(all four rings subtracted from the rod).
Hope this is more clear now... Still, check the links for a better understanding of trees :)…
JILLA
-and when i look at the output values for SPRINGS and REJILLA, both
are modified by the operator!
so my question is:
how can i introduce a list in vb and keep it non-modified (while i
operate with another one created in vb that has inherited its values)
the script:
thanks a lot!
jorge
Sub RunScript(ByVal puntos As List(Of On3dPoint), ByVal springs As List
(Of On3dPoint), ByVal k As Double, ByVal m As Double, ByVal iter As
Integer, ByVal num_f As Integer, ByVal num_c As Integer)
Dim i As Int16
Dim p0 As New On3dPoint()
Dim cont As Int16
Dim num_i As Integer
num_i = num_f + 2
Dim num_j As Integer
num_j = num_c + 2
Dim max_i As Integer
max_i = num_f - 1
Dim max_j As Integer
max_j = num_c - 1
Dim j As Integer
Dim p_max As Integer
Dim p_list As New List(Of On3dPoint)
p_max = springs.Count() - (num_f + num_c)
Dim rejilla As New List(Of On3dPoint)
For i = num_j To p_max Step num_j - 1
For j = i To i + num_c - 2
rejilla.add(springs(j))
Next
Next
While cont < iter
For i = 0 To rejilla.count() - 1
rejilla(i).x += 3
rejilla(i).y += 4
rejilla(i).z += 6
print("posicion " & rejilla(i).x & " " & rejilla(i).y & " " &
rejilla(i).z)
Next
cont += 1
End While
SP = springs
RJ = rejilla
PT = puntos…
JILLA
-and when i look at the output values for SPRINGS and REJILLA, both
are modified by the operator!
so my question is:
how can i introduce a list in vb and keep it non-modified (while i
operate with another one created in vb that has inherited its values)
the script:
thanks a lot!
jorge
Sub RunScript(ByVal puntos As List(Of On3dPoint), ByVal springs As List
(Of On3dPoint), ByVal k As Double, ByVal m As Double, ByVal iter As
Integer, ByVal num_f As Integer, ByVal num_c As Integer)
Dim i As Int16
Dim p0 As New On3dPoint()
Dim cont As Int16
Dim num_i As Integer
num_i = num_f + 2
Dim num_j As Integer
num_j = num_c + 2
Dim max_i As Integer
max_i = num_f - 1
Dim max_j As Integer
max_j = num_c - 1
Dim j As Integer
Dim p_max As Integer
Dim p_list As New List(Of On3dPoint)
p_max = springs.Count() - (num_f + num_c)
Dim rejilla As New List(Of On3dPoint)
For i = num_j To p_max Step num_j - 1
For j = i To i + num_c - 2
rejilla.add(springs(j))
Next
Next
While cont < iter
For i = 0 To rejilla.count() - 1
rejilla(i).x += 3
rejilla(i).y += 4
rejilla(i).z += 6
print("posicion " & rejilla(i).x & " " & rejilla(i).y & " " &
rejilla(i).z)
Next
cont += 1
End While
SP = springs
RJ = rejilla
PT = puntos…
rves that "intersect" a plane placed on Z=6 above the first circle. I did this to have a collection of points from which to choose 3 and make a 3pt-circle.
[this second circle "fits" the catenary at a certain height, that's what I wanted to do]
Maybe it's obtuse but anyway that's the way I managed it.. I then used the "intersection" of the top circle with the original catenary curve to "split" the catenary into 2 parts, I then "Rail Revolution" the first part of it around the axis of the original circle, using the circle as a "rail", and I get a Brep surface.
It is a "open brep" surface, so now i'm having the problem of managing it if I want to subdivide it with Isotrim or other commands to control the number of subdivisions.
Is there a better way to go about this?
I am attaching the file.
About the image, I checked my code about 10 times to understand why it has those "lines" every 1 meter in the Z, and they already appear in the "rail revolution" component when it is visible, but in the "brep components" I can see the individual points along the rail curve.
I think this is what might be causing the brep to surface problem, but for the life of me I can't understand why the rail is not smooth and is "divided" into the 7 points instead of just one smooth revolution...
Thanks! :)
…
s levels of detail by subdividing a 6 sided cube mesh and projecting its vertices according to a referenced height map. This is one of the standard conventions for building full sizes planets. At the lowest level (0) the mesh planet is made of 6 pieces(each 32x32 resolution). The next level down (1) is made of 24 pieces... 6 divided by 4 = 24. Level (2) is 96 quads etc etc. The script will generate each quad at its sub-division level and compare edge vertices to neighboring quads. It will then make sure any shared vertices are in fact at the same projected vector. This ensures a planet quad with edge vertices that match.
The problems comes in texturing each quad.
If I build the quad as a nurb surface from points I can place the texture easily because each surface UV maps squarely to my texture map (which is also square).
If I build the quad as a mesh I cannot just apply the square texture to the mesh UVs. This is because when you unwrap the UVs from a mesh they will not unwrap like a nurb surface's UVs. Therefore to get the correct mapping I would have to manipulate each UV back to an evenly aligned array (which is 1024 points in a 32x32 resolution UV). Maya and blender have 'relax uv' and 'align UV' functions but they don't do the trick and manual corrections are out of the question. So why not skip the mesh method and use the nurb method?
I did this and there is a trade off. The nurb will accept the material texture I want with no other work on my end but when I export the object as an .obj rhino creates its own mesh to describe the nurb(with various unsatisfactory setting options). This works great up to a point because at some level the interpreted mesh will have vertices that do no match at the edges, ie .. creating visible seams in the mesh. The picture below is the nearly seamless planet at LOD(1) made of 24 quads, each with 32x32 vertice resolution and a 512x512 jpg texture running in Unity3d 5. It works but at close level there are seams. This will be resolved simply by having the next LOD(x) instantiate before getting close enough to see the seam but at core nerd level I want the seamless mesh.
So, I can make the seamless mesh but I can not realistically texture map it. I can also make the nurb surface from points and texture it at the expense of the edge vertices matching. I am at the split in the road but I want to have my cake and eat it too. Thoughts, comments, trolls...?
Thanks for reading =)
Footnote: For you pros I am not using seamless noise across the map I am using grasshopper to sew up my otherwise non perfect edges.
Other programs in the pipeline:
-WorldMachine 2
-Wilbur
-Photoshop
-Unity3d…
uments:
1. You are targeting CATIA don't you? (not exactly tomorrow but ... soon) and/or SolidWorks (hello C# haven't we met before?).
2. You MUST deal with nested block instances instead of what you are trying to do right now (I'm talking about the real MERO things not abstract Lines and points). This is not doable with GH components I'm afraid (but it's rather easy with code).
3. You MUST deal with RDBMS in order to keep track with what's going on in your company per project per case per designer (who sells that bolt? what's his cat name? is he a reliable supplier? what I'm doing in life? ... that sort of "queries"). At this point: CATIA is 1% CAD things and 99% PLM stuff (Product Life cycle Management). We do want that since it's 21st century running don't we?.
I hear you: but these are 3 arguments ... indeed but ... hey who's counting? he he.
Method:
A. This def attached has a very simple C# that gets mesh Pts and makes a nice U/V style collection of points (DataTree in plain English).
B. Then we go to that umbrella sticks thingy: we can calculate anything (already the thing does "some") plus your collections of divided points (with the right way, he he) VS a given node: you said (Skype) that you want to calculate angles with these (from 2 to 6) in mind: obvious since you are doing real-life MERO things.
C. Then we could calculate the appropriate Planes for PlaneToPlane transformations: get a nested instance definition (the red things that you've showed to me yesterday) placed at 0,0,0 (Plane.WorldXY) and put in in every Plane collection related with every node (clash defection is an obvious must).
Case resolved, closed: what about that Vodka?
More in Skype
…
Tetrahedron: 24 Symmetries
Pyramid: 8 Symmetries
Design space = 24 X 8 = 192 permutations
So I decided to write a simple orientation script to iterate over all permutations. And this is the result. Below are some technical notes.
I used the vertices of the shapes for creating a 3 point plane, and used it for orientation.
I used compound transform to combine multiple steps of transformation.
The cross reference component is very handy, generating all the possible combinations without worrying too much about data tree.
The spatial relationship and the basic grammar A -> A + B and B -> A + B
The basic grammar and possible marker positions.
All results in 6 iteration steps
All results in 6 iteration steps (Top View)…
learn, or as an alternative to your morning coffee + cross-word puzzle.
Rules:
Contributions can be posted by anyone. Either selected from a previously posted problem from the general discussion (please acknowledge original poster), a selection from one of the many grasshopper+ primers (please include credits) something you think is fun, curious about, or even something you want to learn.
We should keep the entries dated so we can track them. One new problem per day (so if you see one posted for today- there is always tomorrow).
User(you) adds post titled: date-name of problem.
Solutions will be posted with breakdowns, either in logic procedure, etc. And in the spirit of the NY Times, an explained solution will be posted as well within the following days.
Remember there are multiple ways to solve a problem- however the “official” post should include a “clean and elegant” (or simplest) solution. So that all learning can develop better scripting habits.
Rules: an explanation.
1- Submission categories are as follows:
Native
Plug In
Scripted
Each category should have a difficulty rating - 1 to 5 perhaps.
They should be included in title for clarity-
Date_NameOfProblem_Native Plugin or Script_Difficulty
2. Since we are an international community, and this is an open group- a C+G day starts at the time of 10 am local poster’s time.
3.Anyone can set the next question. However the same person cannot set two days in a row. If a question is up- then next person needs to wait until the following day to post. You can PM Danny Boyes or Myself (Monique) if you are having posting issues- (i.e.: how to post, or have been trying to post, but keep missing the opportunity)
4. Answers are presented in the typical grasshopper community response way: in the form of examples, and/or screen shots. For screen shots: make sure the nodes are legible, if you do a function inside a node make sure we can see what you did. Verbal explanation. Maybe picture of result.
The difference between this group and the general discussion is that the poster should know how to solve the problem, be able to post a solution up themselves.
5. The poster judges the answer. They should offer a sample solution as well when they declare the winner.
However overall quality control may be checked by moderators of the group.
6. Still thinking about this one. …
,with OpenfoamV1612+ in Windows 10 64bit.The blockmesh worked good.And the snappyhexmesh crashed in the process.My computer memory is not enough? Or some settings wrong?Could you help me solve this question?/---------------------------------------------------------------------------| ========= | || \ / F ield | OpenFOAM: The Open Source CFD Toolbox || \ / O peration | Version: v1612+ || \ / A nd | Web: www.OpenFOAM.com || \/ M anipulation | |*---------------------------------------------------------------------------*/Build : v1612+Exec : snappyHexMeshDate : Aug 27 2017Time : 09:39:54Host : "default"PID : 13443Case : /home/ofuser/workingDir/butterfly/outdoor_airflownProcs : 1sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //Create time
Create mesh for time = 0
Read mesh in = 2.14 s
Overall mesh bounding box : (-241.5472 -241.4418 0) (496.4376 536.2438 144.8633)Relative tolerance : 1e-06Absolute matching distance : 0.001081851
Reading refinement surfaces.Read refinement surfaces in = 0.01 s
Reading refinement shells.Refinement level 3 for all cells inside around_buildings_area.stlRead refinement shells in = 0 s
Setting refinement level of surface to be consistent with shells.For geometry outdoor_airflow.stl detected 0 uncached triangles out of 120Checked shell refinement in = 0 s
Reading features.Read features in = 0 s
Determining initial surface intersections
Edge intersection testing:Number of edges : 1684728Number of edges to retest : 1684728Number of intersected edges : 5583Calculated surface intersections in = 1.68 s
Initial mesh : cells:554112 faces:1684728 points:576779Cells per refinement level:0 554112
Adding patches for surface regions
Patch Type Region
outdoor_airflow:
6 wall buildings
Added patches in = 0.03 s
Edge intersection testing:Number of edges : 1684728Number of edges to retest : 0Number of intersected edges : 5583Selecting decompositionMethod none
Refinement phase
Found point (127.4452 147.401 72.43167) in cell 402042 on processor 0
Surface refinement iteration 0
Marked for refinement due to surface intersection : 8820 cells.Determined cells to refine in = 3.87 sSelected for refinement : 8820 cells (out of 554112)Edge intersection testing:Number of edges : 1883850Number of edges to retest : 250376Number of intersected edges : 21198Refined mesh in = 1.77 sAfter refinement surface refinement iteration 0 : cells:615852 faces:1883850 points:652499Cells per refinement level:0 5452921 70560
Surface refinement iteration 1
Marked for refinement due to surface intersection : 38502 cells.Determined cells to refine in = 0.04 sSelected for refinement : 40392 cells (out of 615852)Edge intersection testing:Number of edges : 2787132Number of edges to retest : 1118049Number of intersected edges : 85655Refined mesh in = 3.17 sAfter refinement surface refinement iteration 1 : cells:898596 faces:2787132 points:990317Cells per refinement level:0 5432351 486812 306680
Surface refinement iteration 2
Marked for refinement due to surface intersection : 159213 cells.Determined cells to refine in = 0.1 sSelected for refinement : 168471 cells (out of 898596)Edge intersection testing:Number of edges : 6576117Number of edges to retest : 4737635Rhino Model and GH files is in t'he zip file.Please help me solve this question!~~…
itects are at the spoke of a number of different specialties, and their work affects many different people. It's not like an architect is a painter, whose work may offend or upset the occasional viewer. As an architect you have a responsibility to produce quality work. How can anybody trust you with this responsibility if you're taking a purely artistic approach? What guarantees do you have that your clients money won't be spend on a poorly designed project if you can provide no rational for why your design is the way it is?
2. What is any sense in purely architectural discourse?
I don't get. Discourse is there to flesh out problems and agree on solutions. It might not always accomplish that, but what's the difference between talking about architecture as opposed to any other topic?
3. strictly looked, can be determined sense generally in a purely architectural discourse?
I'm sorry I don't understand.
4. What is purely architectural discourse?
I imagine it's having a discussion where you only talk about architecture?
5. What is Funktionalismus or Rationalismus without philosophical support?
Functionalism and Rationalism are ideologies. Some would even call them methodologies. They are inherently philosophical things as they are nothing more than a collection of ideas and views. As a society we've decided that a certain level of rationalism is a good thing. The Enlightenment continued this trend after the Dark Age hiatus and it quickly led to a large number of very tangible benefits for almost everyone.
I'm not arguing for or against Functionalism as an architectural style. I'm asking for a measure of rationalism in our academic process.
6. Would not be the pure functional fulfilment empty ?
Let's find out. In the meantime I'll settle for a little functionalism.
7. Would be not a critical position on the promise of purely rational algorithms applied?
Algorithms and algorithmic design are rational in the sense that they do not allow for ambiguity. But that doesn't make them rational in the real-world sense. These are not the same kind of 'rational's. I can make an algorithm that produces total nonsense, but does so completely reliably. I can also use an algorithm in a setting for which it wasn't intended, thus invalidating the results.
This is actually the crux of the problem. Which algorithms does one use to solve a problem and what data do they require? If you can't answer this question or if you do not understand the algorithms you are using (at least on a superficial level) then I'd say you have no business using them.
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 12:48pm on August 19, 2013