le discontinuous list of index numbers and I'd like to be able to generate a set of domains where each span of numbers would have its own domain. For example:
This list: 5,6,7,8,9,22,23,24,25,26,77,78,79,80,81...
Would give these domains: 5 to 9, 22 to 26, 77 to 81...
I'm at a loss as to how I can achieve this though. I know I can use the bounds function on the list but that would give a single domain, not several. In case it helps the list in question was generated by a true/false cull pattern from the complete list of indices so simply determining the indices of the beginning and end of each chunk of 'trues' in the cull pattern would work as well as it would give the same domains. I can post an example file if anyone would like but I figure this is a pretty general issue.
So anybody have any ideas on how to solve this multiple domains from a single list problem? Thanks in advance for any help at all, I'd really appreciate it!
James…
GH, same as using sweep2 command in Rhino.
The one on the right is what I got so far (the output smooth our the kink of the original rails). Basically I am just following the methods provided by sdk sample: http://wiki.mcneel.com/developer/sdksamples/sweep2 .
The following is the function I copy and use directly from the SDK sample. By using this function, I can generate the sweep surface at right. But I want to have is the one in the middle with the kink edges. Can anyone show me how and where to modify he settings? I guess some sweep arguments need to be changed? I have try couples, such m_simplify, m_bSimpleSweep, m_bSameHeight, m_rebuild_count... but still cannot find a right combination for this function to output the sweep surface I want. Any suggestions or helps are very appreciated. Thanks for your help and time on this.
'Sweep2 function'----------------
Sub Sweep2( ByVal Rail1 As IOnCurve, _
ByVal Rail2 As IOnCurve, _
ByVal sCurves As List(Of IOnCurve), _
ByRef Sweep2_Breps As List(Of OnBrep))
'Define a new class that contains sweep2 arguments
Dim args As New MArgsRhinoSweep2
'Set the 2 rails
Dim Edge1 As New MRhinoPolyEdge
Dim Edge2 As New MRhinoPolyEdge
Edge1.Append(Rail1.DuplicateCurve())
Edge2.Append(Rail2.DuplicateCurve())
'Add rails to sweep arguments
args.m_rail_curves(0) = Edge1
args.m_rail_curves(1) = Edge2
args.m_bClosed = False
Dim section_curves As New List(Of OnCurve)
'Loop through sections to set parameters
For Each Section As IOnCurve In sCurves
Dim sCurve As OnCurve = Section.DuplicateCurve()
section_curves.Add(sCurve)
Dim t0 As Double = 0
If Not Edge1.GetClosestPoint(sCurve.PointAtStart(), t0) Then
If Not Edge1.GetClosestPoint(sCurve.PointAtEnd(), t0) Then
Dim s As Double = 0
sCurve.GetNormalizedArcLengthPoint(0.5, s)
Edge1.GetClosestPoint(sCurve.PointAt(s), t0)
End If
End If
args.m_rail_params(0).Append(t0)
Dim t1 As Double = 0
If Not Edge2.GetClosestPoint(sCurve.PointAtStart(), t1) Then
If Not Edge2.GetClosestPoint(sCurve.PointAtEnd(), t1) Then
Dim s As Double = 0
sCurve.GetNormalizedArcLengthPoint(0.5, s)
Edge2.GetClosestPoint(sCurve.PointAt(s), t1)
End If
End If
args.m_rail_params(1).Append(t1)
Next
'Set shapes
args.m_shape_curves = section_curves.ToArray
'Set the rest of parameters
args.m_simplify = 0
args.m_bSimpleSweep = False
args.m_bSameHeight = False
args.m_rebuild_count = -1 'Sample point count for rebuilding shapes
args.m_refit_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AbsoluteTolerance()
args.m_sweep_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AbsoluteTolerance()
args.m_angle_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AngleToleranceRadians()
Dim sBreps() As OnBrep = Nothing
If (RhUtil.RhinoSweep2(args, sBreps)) Then
For Each b As OnBrep In sBreps
Sweep2_Breps.Add(b)
Next
End If
Return
End Sub
…
e BIOS as i noticed that i was required to do so. This is the progress i made. Now the file "do something". It takes about 4 minutes in the blockMesh component, so something is happening. But at the end of the 4 minutes i get the same error as before. Tried to run the start_OF.bat externally, but no use either.
Those are the snapshots of both of them:
Be patient ... and bear with me. Sorry for bothering with this ... and thanks,
-A.
P.S. There is a chance it is related to the firewall of my university, or some other security issue for those trying to apply virtual machines/hosting.
I'll try at home in the evening.
A more detailed image of the shell running the batch file manually:
…
ce condition I believe, which yes usually this is 0. Bare in mind that OF divides pressure by density, so if you want the 'real' pressure you would need to multiply the results by 1.205 (perhaps we add this in BF at some point but it's easy in native GH).
Vector based velocity is a very good idea, and a nice and easy way to model these kind of flows!
If you wish to experiment even further with the custom boundary condition components you can try implementing a flowRateInletVelocity boundary condition (see https://github.com/OpenFOAM/OpenFOAM-3.0.x/blob/master/src/finiteVolume/fields/fvPatchFields/derived/flowRateInletVelocity/flowRateInletVelocityFvPatchVectorField.H)
It will allow you set the flows in m3/s, which is handy for usual HVAC specs. The direction of the patch follows the normal of the surface. Setting a minus in the volumetric flow rate assigns an opposite direction.
Thanks for using and sharing! Keep them coming!
Kind regards,
Theodore.
P.S.: Try this as an expirement. Increase the refinement of your mesh, factor of 4 should be nice. You can simply reduce the the blockMesh cell size by 4 to accomplish that. Try running the case and see the impact on the residual graph.
…