Random placement of surfaces on a panel

In the current Rhino for Mac WIP the ptPanelRandomPoints command generates a grid but not the points needed to place a array of a surface. Is this just not yet a function or am I missing something? I would like to do this without Grasshopper.

maybe you’re looking for ptGridSurfaceDomainVariable with Distance Method set to random

Cool thanks. That works, now I need to figure out how to array a surface to the points without grasshopper. btw here is what we do. www.unifiedfield.com


do you want just flat surfaces using the random points as the surface corners?
like ->

if so, that’s using ptPanelGrid after generating the random points.

fwiw, all/most of the paneling tool commands that start with ptGrid will create a grid… all of the ones that start with ptPanel will populate the grid which was created.

you in NYC?

Hi Jeff,
Yes we are in New York you? Come over some time. yes? Here is something
close to what we are trying to do. The concept is an digital media art
installation that is a suspended array of laminated dichroic glass panels,
each laser cut with the individual letters of the four DNA nucleotides C -
Cytosine, G - Guanine, A-Adenine and T - Thymine. During the day, the
panels use the high-ambient natural light streaming in from the facades
and skylight of the building to illuminate a projected shadow of the
panels onto the floor, the building and the people moving throughout the
space. Each letter panel is digitally controlled by servo motors and
spooled stainless steel cabling. Moving in arcs, the panels can be
precisely aligned to form and project specific nucleic acid sequences.

It would be great to be able to model this without resorting to
Grasshopper. I tried ptOrientToGrid command tagged to the random points but
can’t get the surface panels to lie plumb to the surface- like this but
random on a curved surface.


[quote=“ekuslansky, post:5, topic:31068, full:true”]
Hi Jeff,
Yes we are in New York you? Come over some time. yes?[/quote]
ok. probable.

i think i’m understanding what you’re after.



…but i’m also guessing the ‘no grasshopper’ desire also means ‘no python’?

it would basically be something like this with python:

import rhinoscriptsyntax as rs

points = rs.GetPointCoordinates("select points")
obj = rs.GetObject("pick panel")
ref = rs.GetPoint("from point")

for pt in points:
    vec = rs.VectorCreate(pt,ref)

is that what you’re after?

if so, grasshopper would be really good for this… or, it would make it easy to go through many different versions of the thing. (as well as visualize the servo rotation and probably the color gradients of the panels)…
why are you against using grasshopper for this?

oh, and hey @ekuslansky

i understand not wanting to get into python or even grasshopper… but what you’re wanting to do (at least what you’ve shown so far) wouldn’t be a very difficult script to write… and there are a decent amount of coders hanging around here.

i think if you made a script request thread, someone would make it for you… (and you could set it up to where you use it just like you’d use a standard rhino command… on an icon or via typing in the command search dialog.)

1 Like

Hi Jeff,
That’s good to know. They would do it as a contribution? We have some projects which are proportional and some that are paying gigs. For the proposals it comes out of our pocket so if there are Rhino coders that could work with us it would be great. Where would I post this?

Best regards, Eli

1 Like

just here at the forums… maybe post in the scripting subforum with ‘request’ being included in the topic title.

for something like this, i wouldn’t think or expect a person to charge a commercial fee.
it’s a general function (and one that, arguably, paneling tools’ OrientToGrid should/could be doing )…

if it were a highly customized script to suit your individual usage or, it were complex/more involved. then i think it’s fair to pay something for their time…

but doing something like _RandomArrayOnSrf would be one that a forum member would probably want to do for the fun of it.