gtool's (PT) ptGridUVCurves to create a grid with the UV co-ordinates
5. paneling them with ptPanelGrid
I tried this before, it works for some flat area, but in those position with rather small corner radius, they are a little bit off from each other.
I draw those lines with their slope (ummmm, width / height, what you actually call it in English"), I have the first line drawn manually (with a specific rotation angle) then I use the slope of it to project the rest of them, it works ok for the red pattern, but not really good for the other direction. I thought there might be some tool that can help to "apply" the whole pattern with one single cell. I will try further with your method see if it works.
thanks a lot…
ase unit is then arrayed across a field of points.
That array is then again, decomposed and analyzed to evaluate point relationships.
This provides an understanding of a possible starting point to begin developing a dynamic array in GH.
In order to understand the point string, I needed to show the i & j (aka u and v) values for the grid points. (perhaps a component that handles that could be in a future release). In the attached GH file, there are 4 component groups that are just for that purpose.
This evaluation is a continuation of studies initially developed at a workshop, conducted by modeLab. (http://modelab.nu/?p=5737)
Enjoy! …
construct your mesh faces into points and then use surface 4 pt to construct the surfaces directly. The Boundary Surface component you're using has to do a bunch of extra work that isn't any use to you in this content - that's what makes it slow.
…
ibed. Also there is a development in v0.7 which enables you to define User components based on something you have created on the canvas. This will apply to multiple components soon.
2. Simply use either a Geometry or Primitive Param Component like Pt. The data is not copied until it is changed or transformed.
3. Have a look at Stream Filter component (right click to get Input Manager to add more options) you supply an integer to choose the gate from which the input is selected.…
in different locations. If you search for PanelingTools.rhp, just one should turn out, and in the same folder, you should see 3 other files. See attached.
…
, ByVal GS As List(Of System.Object), ByRef nsrf As Object)
Const Degree As Integer = 3
'Make the surface Dim orderU As Integer = Degree + 1 Dim orderV As Integer = Degree + 1
Dim ns New OnNurbsSurface ns.Create(3, False, orderU, orderV, GS, GS)
'Add cv points Dim i As Integer Dim j As Integer Dim pt As On3dPoint For i = 0 To GS - 1 For j = 0 To GS - 1 pt = Pts(i)(j) ns.SetCV(i, j, pt) Next Next
'Set knots for open surface ns.MakeClampedUniformknotvector(0) ns.MakeClampedUniformknotvector(1)
nsrf = ns
End Sub
(I've underlined the bits I've changed) That might work, although it looks like it will create a surface and not a mesh, which may not be what you want, and also I think will only do the same thing as the built-in SrfGrid (Surface From Points) component, which you may prefer to use.
Paul…
and have a minimum increment value of 1, i.e. a colour can have an R value of 1 or 2, there's no 1.005. Well, there's alpha too, but thats a whole another matter.
If you want to measure the intensity on only one channel, then you need to measure your values on that channel (R/G/B) and then equate it to the Z value of your points in consideration. Say if we were sampling Red, R = 0 would mean no change to the Z position, and R = 255 would mean Z = 10. All other values between 0-255 would be interpolated to 0-10.
You could even sample all 3 simultaneously, and take only the highest. In that case, you will have to measure R, G and B, and take the maximum of the 3 for any given pt.…
y to facilitate the help.
Private Sub RunScript(ByVal x As Boolean, ByVal Ids As List(Of Guid), ByRef A As Object)
If x ThenBB = New BLABLA(ids)A = BB.CurvaElseIf BB IsNot Nothing Then BB.timer.Stop()End If
End Sub
'<Custom additional code>
Dim BB As BlABLA
Public Class BLABLAPublic Curva As curvePrivate Cache As list(Of point3d)Private IDs As list(Of guid)
Sub New(_ids As list(Of guid))IDs = _idsDim points As New list(Of point3d)For Each id As guid In idsDim rh As rhinoobject = rhinodoc.ActiveDoc.Objects.Find(id)Dim pt As Rhino.Geometry.Point = DirectCast(rh.Geometry, rhino.Geometry.Point)If pt is Nothing Then Continue Forpoints.add(pt.Location)Nextcache = pointscurva = curve.CreateInterpolatedCurve(points, 3)timer = New system.Windows.Forms.Timertimer.Interval = 100timer.Start()
End Sub
Public WithEvents timer As system.Windows.Forms.Timer
Private Sub Tick(sender As Object, e As System.EventArgs) Handles timer.Tick
For i As int32 = 0 To ids.count - 1Dim rh As rhinoobject = rhinodoc.ActiveDoc.Objects.Find(ids(i))Dim pt As Rhino.Geometry.Point = DirectCast(rh.Geometry, rhino.Geometry.Point)If pt Is Nothing Then Continue For
If Not pt.Location.Equals(cache(i)) ThenUpdateOutput()
End Ifcache(i) = pt.LocationNextEnd Sub
Private Sub UpdateOutput()'HERE I NEED UPDATE THE A OUTPUTrhinoapp.WriteLine("Change")End Sub
End Class…
eals with rectangular regions. The trick is to try to generate modules that are rectangular, stagger grids, etc.
Of the 4 attempts, I came back to populating the pattern on a flat region and use FlowAlongSrf.
I hope you fond the attached informative.
…