igitais de forma criativa e rigorosa, para a concepção de modelos 3D– Familiarizar-se com as lógicas de criação de geometrias tridimensionais NURBS.- Desenvolver técnicas de criação de imagens fotorealistas com o motor de render V-Ray- Introduzir as lógicas paramétricas e associativas processo criativo.- Introduzir novas lógicas de BIM no processo estrutural (Building Information Modeling).# INFORMAÇÕES E INSCRIÇÕESinfo@rhino3dportugal.comAna Fonseca: 917140716 Mais informações disponíveis no site: www.rhino3dportugal.com# FORMADORES Brimet Silva ( Authorized Rhino Trainer )
...................................................
Curso de Rhino3D Nível I
6, 7 e 9 de Julho9h-13h e 14h-18h (sessões diárias de 8h).....................................................Curso de Vray-Nível I
12 e 14 de Julho9h-13h e 14h-18h (sessões diárias de 8h).................................................Curso de Grasshopper Nível I
16 e 18 de Julho9h-13h e 14h-18h (sessões diárias de 8h).................................................
VisualARQ e Rhino BIM- Nível I
21 e 23 de Julho9h-13h e 14h-18h (sessões diárias de 8h)
…
rring to the above image)
Area
effective
effective
Second
Elastic
Elastic
Plastic
Radius
Second
Elastic
Plastic
Radius
of
Vy shear
Vz shear
Moment
Modulus
Modulus
Modulus
of
Moment
Modulus
Modulus
of
Section
Area
Area
of Area
upper
lower
Gyration
of Area
Gyration
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(strong axis)
(weak axis)
(weak axis)
(weak axis)
(weak axis)
A
Ay
Az
Iy
Wy
Wy
Wply
i_y
Iz
Wz
Wplz
i_z
cm2
cm2
cm2
cm4
cm3
cm3
cm3
cm
cm4
cm3
cm3
cm
I have a very similar table which I could import to the Karamba table. But I have i_v or i_u values as well as radius of inertia for instance.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dimensjon
Masse
Areal
akse
Ix
Wpx
ix
akse
Iy
Wpy
iy
akse
Iv
Wpv
iv
Width
Thickness
Radius R
[kg/m]
[mm2]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm4]
[mm3]
[mm]
[mm]
[mm]
[mm]
L 20x3
0.89
113
x-x
4,000
290
5.9
y-y
4,000
290
5.9
v-v
1,700
200
3.9
20
3
4
L 20x4
1.15
146
x-x
5,000
360
5.8
y-y
5,000
360
5.8
v-v
2,200
240
3.8
20
4
4
L 25x3
1.12
143
x-x
8,200
460
7.6
y-y
8,200
460
7.6
v-v
3,400
330
4.9
25
3
4
L 25x4
1.46
186
x-x
10,300
590
7.4
y-y
10,300
590
7.4
v-v
4,300
400
4.8
25
4
4
L 30x3
1.37
175
x-x
14,600
680
9.1
y-y
14,600
680
9.1
v-v
6,100
510
5.9
30
3
5
L 30x4
1.79
228
x-x
18,400
870
9.0
y-y
18,400
870
9.0
v-v
7,700
620
5.8
30
4
5
L 36x3
1.66
211
x-x
25,800
990
11.1
y-y
25,800
990
11.1
v-v
10,700
760
7.1
36
3
5
L 36x4
2.16
276
x-x
32,900
1,280
10.9
y-y
32,900
1,280
10.9
v-v
13,700
930
7.0
36
4
5
L 36x5
2.65
338
x-x
39,500
1,560
10.8
y-y
39,500
1,560
10.8
v-v
16,500
1,090
7.0
36
5
5
I have diagonals (bracings) which can buckle in these "non-regular" directions too, and they do. If I could add those values then in the Karamba model I could assign specific buckling scenarios..... I can see another challenge which will be at the ModifyElement component, I will not be able to choose these buckling lengths, in these directions.
Do you think this functionality can be added within short, or should I try to find another way to model these members?
Br, Balazs
…
b RunScript(ByVal srf As Surface, ByVal startPT As Point3d, ByVal startVEC As Vector3d, ByVal intMAXbounces As Integer, ByVal coef As Double, ByRef reflectionPointList As Object, ByRef contactPlanes As Object, ByRef valuePointList As Object) Dim originPt As Point3d = startPt Dim dirVec As Vector3d = startVec Dim surfaceNormal As New vector3d Dim outputPts As New List(Of Point3d) outputPts.Add(originPt) '''Dim outputPlanes As New List(Of on3dvector) '''Dim outputNormalPlanes As New List(Of On3dVector) Dim n As Integer = 0 '''Dim blnSwitch As Boolean = False While n < intMaxBounces '''Dim bounce As New On3dRay Dim shooter As New OnRayShooter Dim hit As New OnX_EVENT Dim plane As New OnPlane hit.m_type = RMA.OpenNURBS.IOnX_EVENT.TYPE.csx_point shooter.m_min_travel_distance = doc.AbsoluteTolerance() shooter.Shoot(originPt, dirVec, srf.toArray(), hit) Dim intIndex As Integer = getSrfIndex(srf, hit.m_pointA(0), hit.m_b(2), hit.m_b(3)) originPt = hit.m_pointA(0) If originPt.CompareTo(onutil.On_origin) = 0 Then '''print("exit") Dim lastPoint As Point3d = outputPts.Item(outputPts.Count - 1) Dim newPoint As New Point3d newPoint.x = (dirVec.x * 100 * coef) + lastPoint.x newPoint.y = (dirVec.y * 100 * coef) + lastPoint.y newPoint.z = (dirVec.z * 100 * coef) + lastPoint.z outputPts.Add(newPoint) Exit While End If surfaceNormal = srf(intIndex).normalAt(hit.m_b(2), hit.m_b(3)) '''plane.CreateFromNormal(hit.m_pointA(0), surfaceNormal) dirVec = reflectVector(dirVec, surfaceNormal) '''outputNormalPlanes.Add(dirVec) outputPts.Add(originPt) '''outputPlanes.Add(dirVec.PerpendicularTo(dirVec)) n = n + 1 End While If outputPts.Count > 1 Then reflectionPointList = outputPts.ToArray() '''contactPlanes = outputPlanes.ToArray() '''normalPlanes = outputNormalPlanes.ToArray() End If End Sub
'<Custom additional code> Function getSrfIndex(srf As list(Of Surface), testPt As point3d, u As Double, v As Double) As Integer Dim intIndex As Integer For i As Integer = 0 To srf.count - 1 Dim srfPoint As New point3d srfPoint = srf(i).pointAt(u, v) If srfPoint.distanceTo(testPt) < doc.AbsoluteTolerance Then intIndex = i Next Return intIndex End Function
Function reflectVector(incomingDirection As vector3d, surfaceNormal As vector3d) As vector3d Dim tempVec As New vector3d tempVec = incomingDirection tempVec.Reverse() tempVec.Rotate(onUtil.On_PI, surfaceNormal) Return tempVec End Function
Thanks,
Phillip…
e radius). I used David Stasiuk Cocoon in order to make the shape. http://www.bespokegeometry.com/2015/07/22/cocoon/
After being happy with the shape I toggle the final generation of mesh from Cocoon with a subd of 1 (126,792 faces). I then calculate direction I want for the pattern, here the same directions as the nearest curve. Surely not the smartest way of doing but it works.
After that Reaction Diffusion could be used. A good site to understand is http://www.karlsims.com/rd.html A good site to choose feed and kill values is http://mrob.com/pub/comp/xmorphia/index.html In order to modify the size of the pattern I use B diffusion and also the size of the mesh. The directionality is controlled by _factor > 1 and pattern will follow tangents, and < 1 pattern will be perpendicular to the tangents.
Here differents parameters to play with
This script could surely be used to replicate Nervous Reaction design, thanks to them to their creativity. http://n-e-r-v-o-u-s.com/Laurent Delrieu August 2015…
"meshed" i assume that meant converting Surfaces with MeshUV\DeMesh?, and from your screenshots thats a substantial number of vertices and therefore lines to draw, well worth it though from the results!, i agree with your answer to 3) that a more automatic solution is required,.
1) By mesh, I should have said produce a surface – then convert surface to mesh – followed by de-mesh to get access to vertices etc.
You can reduce the resolution of points if you need to, depending on your hardware. The more points you use the harder and it is to compute a solution, however the more points you use, the more accurate your interpolated surface. You need to find your own balance between speed and accuracy.
- ..thats great news, equalizing vertex numbers is exactly what i need to do since my Blend surface "keyframes" by nature will likely have unequal point counts. However, a) ..when using default Rhino surf's your intruiging def. starting to work for me only after i replaced you "custom" Domain(VB\Python?,let me know) with Deconstruct Domain. then it connected each surf's vertices but did Not produce an intermediate surface or points. b) ..when using my IDENTICAL Blend surf's in your def. with Deconstruct Domain and Merge comp's it then produced intermediate vertices,. see def. screenshots or i can send def's i you like,. I'll also produce the 2nd, Non-identical Blend surf keyframe to test in your def.
2) I am not sure what you mean by my ‘custom domain’ are you referring to the definition in my second post – or the post I sent for David to look at? Perhaps you can circle the component and upload a screenshot so I know what you are referring to? Your second screen shot appears to have worked OK
- .. agreed, 6) does or will your latest def. contain more automated, vertex correspondence, Ln creation?
3) No, I moved away from morphing surfaces and moved my solution to generating surfaces based on point data. This cut out the requirement for me to generate the surface to begin with and allows very automatic production of surfaces from data out of excel. Perhaps this would also be a good solution for you? You could:
Move your point data to excel, by exporting the x, y, z of your vertices for each surface.
Use excel as your information repository then write a definition to interpolate between your start and end points from excel.
This is basically what I have done now, as I have 1700 different ‘surface’ snap shots from the data I am working with.
- ..perhaps i missed something, but after using Brep > Join on my polysurface SDivide still saw it as subsurfaces instead of a single surface,.
4) Sorry, perhaps I should have tried that – I didn’t get as far as trying to subdivide. There should be a way to then re-create as one surface if it is necessary… I will try and find out when I have time.
How many sets of surfaces are you trying to merge through? It is also possible to morph from 1 to 2, 2 to 3, 3 to 4 …… x-1 to x by using a slider which calculates the range and picks the correct two surfaces to morph. If you need more info let me know and I will write something. - ..that sounds perfect, esp. since the sets of surfaces will be as nearly unlimited as the feature film they're modeled from. Yes, i'd love to learn more info\def's on this subject, thanks,..
Sounds to me like you might be better taking the excel read, interpolate route? If you have nearly unlimited surfaces, then they must be generated from some other data source yes?
Let me know your thoughts, if you would like to discuss anything I am happy to make myself available on skype at some stage to talk you through some of this stuff.
Cheers
Lyndon
EDIT: I have uploaded a video, which shows a surface generated using excel data - which basically loops between 'snapshots in time' to give you an idea of whether this would suit your needs.
https://www.youtube.com/watch?v=f9XAne9byQc&feature=youtu.be
…
I have 3 List in my VB:
List of points (arrpoints) --> obviously to construct one curve of spiral
List of Curves (objCurves)--> this list contain the copy and rotated one curve of spiral into intSpiralAmount number, I may say its a package of Curves, but still on one face
List of Spirals (setsOfCurves)--> this list to contain the real spiral with each having intSpiralAmount curves, and the (setsOfCurves.count) would be U*V value of the base surfaces.
So, even though there are for example there are 60 curves, but there are only 15 spiral here. Since each face in base surface has package of (4 rotated curves, which is 1 spiral). Sorry for using this confusing term. But, what i want to explains is that there will be only 15 variation of spiral (according to the number of faces in base surface)with different innerRadius (based on intConstant1).
The think is that i want to use ecotech eventually to generate the intConstant1 (innerRadius), so they have different opening. So, there will 15 different openings.
I use the morphbox instead of finding the centerpoint, since it morphbox could adjust any form according to size of each face in your surface. As you can see in the panel String output, I think already have an order of (4 curves made in each face) using pathmapper, which is good. But, the problem is that, im not sure that it is in the right order. I mean, perhaps it just create a random order of that amount in each face.
I dont know if i explained that well. Please advice…
x?
So:
1. We need some random collections (pts) on a List of untrimmed surfaces. Homogenous "random" distribution is better than the method used in the Dubai abstract sketch attached (but at some CPU cost, not a big deal since pts a few: David Rutten did some very good jobin the GH component on that "even" matter). Adding random "noise" (with user controllable min/max values) is the easy thing: like the 256 does.
2. We need some "similarly" defined random pts applied on each surface edge.
3, We "join" 1+2 and do the del mash thing (that's the easy part). Thus the "similar" constrain is critical here for aesthetic purposes (see 2).
4. For each subsequent surface (sharing common edge, that is) we repeat by adding the pts related with the common edge.
5. Arriving to the last surface: we use either one common edge or two if the surfaces define some "closed" (in U or V) combo.
PS: Novice means nothing: we all are novices more or less: so don't let this "truncate" your aspirations.…
called C# (double click to the "component" in the def attached to see what I mean).
OK, jokes apart > back to our business (FORGET intersections and ANY bool thing > think ONLY (a) Intervals, (b) splitting a Surface with the right collections of Intervals):
1. See this attached: it's a prelude about dividing randomly surfaces in the forthcoming Div&Conq example n666. Notice that this deals with Intervals (although with rectangles but that's irrelevant). Notice also that's real-time. Accidentally splitting a surface deals with Intervals as well. Is this Karma? I don't think so, he he
2. It does this by a method called recursive iteration: Erik calls Eric who calls Eric ... until some condition is satisfied (girlfriend waiting for dinner, for instance) and the thing stops.
3. I hear you: BUT that's not what I've asked for. Yes (the whole logic needs some rethinking) and No (it's "similar", he he).
4. I hear you: Where is the real thing? Good question, can I have the next please? It's the Nth time that I've lost something (Alzheimer most probably).
5. Definitely a brain like David Rutten can think a far more efficient/handsome/appropriate random u/v creation approach.
more soon…