(1) I have been exporting small sections of a larger model into Maya from Rhino as FBX. In Maya I rotate and scale the models (-90 in X, Scale XYZ 0.001). The Named Views are being saved, but do not have a successful import into the Maya model. They do not appear as in Rhino, and the problem is not solved by scaling or rotating the cameras.
(2) If I try going the other direction, the cameras exported from Maya as FBX are also not aligning with the model in Rhino as they are in Maya.. I will do my best to post some images of the problem and hope you can help.
error !!
This is what the named views look like
here I am trying to the other way with a good view from Maya
strange placement..
This is the best result I can achieve, after I scale the camera by 1000
Any Advice???
Thanks, Robert.
…
Sunpath component. This is what I essentially did in the upper photo of my hometown's mask.For now this is working only for metric units. I will make sure that for the next release at least feets are supported as well.As for the saving of the time: try increasing the maxVisibilityRadius_ to say 300. Depending on your PC configuration and internet speed it may take as long as 15 minutes for the component to run. The topography file will first be downloaded from opentopography.org. That's the .tif file you noticed. Once the mask is created it will be saved to an .obj file. The next time you run it the mask will be imported from the .obj file, skipping the previous 15 minutes:
It still may take a a couple of minutes (depending on your PC configuration) for the component to complete loading of the mask. The reason why is: the mask needs to be scaled and centered according to the context_ input.Also the next time a user decides to change the maskStyle_ input or context_ input, the topography data will not be downloaded from the opentopography.org website, but rather created from the .tif file.For default maximalVisibility_ of 100, these .tif files are mostly a couple of megabytes, which is not that much of a burden on user's hard drive space. On the other hand keeping these .tif files on user's hard drive helps saving the opentopography bandwidth cap.Let me know if I can answer any further detail or if this one hasn't been clear.Hi Chris,
Thank you too.Please provide the following data:
1) Zip the "terrain shading mask libraries 32-bit" folder in "c:\ladybug" in case you have x86 version of Rhino 5, or "terrain shading mask libraries 64-bit" folder in case you have the 64 bit version of Rhino 5. Upload the zipped folder, and post the link in here, please.Zip the whole folder, not its content only.
2) What is the full name of the GDAL libraries .zip file that you downloaded? What is your Windows version and Rhino 5 version?
On genDayMtx.exe and install of the GDAL libraries: I am reluctant to avoid manual install due to blocking issue. Copying two folders manually is quite a small price to pay in comparison with finding the blocked library among tens of them.…
ard to find example...
I do not know how to load windows form and send data to object in form.vb...using grasshopper sdk.
it is the same,, when I try to use dll(class) with VB component in grasshopper.
may be I have to make two class (class1, form1) but,
when I send data to class1, form1 can not receive class1 data because form 1 made new class1 and both class1, class1(from form1) is different session?
for novice programer,, for me it is very hard.
load class1,
class1 load form1
send data from grasshopper to form1. x
and button click
couldn't calculated,... result was always "0"
and tried many other methods,, but it failed...
may be some known technic but it is hard to find books...
Please...help me.
if possible would you tell me how to load form1 using grasshopper sdk and ""send data "" to form1
or form1 could use data from grasshopper?
Thank you....
for ex)
'(in class.vb)
Public Class Class1 Private Shared fl As Form1 Public Sub fload() If fl Is Nothing Then fl = New Form1 fl.Show() End If End SubEnd Class
'(in form1.vb)
Public Class Form1 Public x, y As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ab(x, y) MsgBox("hi" & y) End Sub Sub ab(ByRef a As Double, ByRef b As Double) b = a * 2 End SubEnd Class
'(in Grasshopper VB.component)
Dim cl As ClassLibrary1.Class1 If cl Is Nothing And f = True Then cl = New Class1 cl.fload() End If Dim fr As ClassLibrary1.Form1 If fr Is Nothing Then fr = New Form1 End If fr.x = x a = fr.y…
e options are).
1) I wish there were better search features included in the double-left-click "enter a search keyword" option, which only brings up icons/components by name in relation to what's typed but doesn't help users understand what that icon's/component's function is. I wish every keyword in the full text that is already included as each component's function description (which appears when you hover over it with the mouse, below the component name) were included in the search keywords, not just the name of the component. That would amount to searching by the function needed, not just by the name of a component (which might not help someone who has never heard of the component to know its function).
example/rephrased: if I double-left-click and type "create a point" the components that appear under "create" in the list are "create set" (or "create material", "create branch" or "create complex", but no point). To get the "create a point" component, you have to know to type "point" but then you also have to check out every point component by inserting it and hovering over it to see if one of them creates a point. However, the "Point XYZ" component's description when i hover over it says "Create a point from xyz coordinates". I wish the description text for every component was part of the searchable content, so that de facto that component would appear as an option in the list when i type "create a point."
2) All along I wished there were an online index/dictionary for all grasshopper components, downloadable and searchable, that could be organized and searchable in order by user preference, including component name, component function (both general categories like "verb" - see below - as well as its specific function) and finally with a brief description/definition of what the component is good for. I imagine categories like "verbs" (someone learning a foreign language the first time gets a list of major verbs) where all the "action functions" like graft, flatten, extrude, etc. are viewable in a single list. This way when i want to make something happen, but don't know what component to choose, i have a way to read about what's possible without going through the 250+ pages of the manual (which isn't a searchable pdf when downloaded, from what i see, and doesn't have an index).
Thanks!
Christina…
t in a number of curves, offset them and then make a union of those. This should give me the curve on which the center of the next particle that collides with the cluster lays.
[See attached picture]
Here's my problem. At first I got an awfull lot of error messages due to my inexperience with coding in VB and/or GH. After alle those were taken care of I have two scripts that do the job. I want to be able to do it in one script but I can't get the array of curves into the Curve.CreateBooleanUnion(x). If I set thoses curves as output and as input [hint: curves] in the next VB script, then Curve.CreateBooleanUnion(x) does work.
I guess I'm doing something terribly wrong in stating my variables, but I have no clue how to solve this.
Thanks for taking the time to look at my problem.
Reinier
Script 'offset'
Private Sub RunScript(ByVal x As Curve, ByRef A As Object) Dim z As array z = x.Offset(plane.WorldXY, 0.5, 1, 2) A = z(0)End Sub
Script 'union'
Private Sub RunScript(ByVal x As List(Of Curve), ByRef A As Object)A = Curve.CreateBooleanUnion(x)End Sub…
instance points). Since this list needs to be accessible for all my components it needs to be stored in some class that is accessible for all components. This class should provide for the components to check values or to append/ assign them from within their SolveInstance domain.
Apart from storing their coordinates I would like to keep track of their 'numbers'. These numbers should be assigned automatically and the way this is done can be expressed in the following pseudo code:
input = somearrayofpoints
for each point in input:
check = checkifcoordinatesexist(point) (true is yes, false is no)
if check == True:
nr= getLastNr() (returns last item from some record database)
store as string (nr + point)
else:
nr = getNrAt(point.coords) (returns the node number at given coordinates in record database)
store as string (nr + point)
How would I go about setting some structure like this up?
I have tried a following simpler set up using a Singleton class where I have a public class that basically returns the value of a number. Then I have a Grasshopper component that just counts the amount of points it gets and add it to the recorded amount of points like:
int counter = points.Count;
SingletonClass singleton = SingletonClass.getInstance(); singleton.getValue += counter;
No multiple of these components 'add' their counts together but with every run they keep increasing. So I need to in this set up I need to clear the data for every run.
So two questions:
1. is this a good start to achieve the above mentioned result, if not any suggestions? references?
2. if so, ho do I deal with the Grasshopper runtime and clear the data send to the Singleton class? Can I use event handlers for solver events for this?
Any suggestion would be greatly appreciated!
(I have attached the singletonclass.cs class and the counter.cs component for reference)
…
ystem to support it from the back.
ELEVATIONPLAN
What I need to do is create a mesh network that is composed of straight segmented pieces. To start, I contoured the surface at 500mm segments in the X and Y axis, getting a mesh grid [below]
Then, I wrote a simple grasshopper script to segment the contour lines, but when I run it, the segments in the X direction and the Y direction do not intersect like I need them to.
I understand why this happened and I understand what I need to do (in concept) but I can't seem to figure out how to implement it.
I'm pretty sure that I need to take the original contours and find the intersecting points and include it in my set of points from DivLength command. My problem is that in the list, the numbers get all jostled up and when I Pline the list of points, it goes a bit crazy. My questions are:
1. Is this the best method of going about this process of creating the segmented mesh?
2. How do I reassemble the list of the two point groups I added?
Thanks in advance!
Best,
Issac
…
for metadata on the Grasshopper installation but can't seem to find a reliable way to do this.
Issue #1 - Checking for an installation of Grasshopper
a) I can check to see if Grasshopper has been installed by searching the Windows registry, but it's not reliable. It seems that Grasshopper no longer has an individual uninstall package (can't find in Add/Remove...), and rather is uninstalled if you uninstall Rhino. However, the registry keys for Grasshopper do not appear to be cleaned on a Rhino uninstall, so my installer can get spoofed into thinking that there is a Grasshopper installed when it's not.
b) It appears that not every Grasshopper install creates a registry entry in HKEY_LOCAL_MACHINE. On my machine, for instance, I can search for the Grasshopper key and return the directory of the .rhp file, and then verify that the file does in fact exist. On other machines, however, I have found that there is no key in the HKEY_LOCAL_MACHINE, and the registry entry in HKEY_CURRENT_USER does not include the path to the .rhp file, so I can't verify whether it does in fact exist or if the registry is out of date.
c) I could brute-force search for the .rhp file, but I haven't found the most reliable parent director(ies) to search in order to be exhaustive and accurate.
Issue #2 -- Checking the Grasshopper Version
I would like to be able to trigger an update programmatically to a network installer (firm-sanctioned GH version) if the existing version is older than specified.
In some cases, if I can find the rhp through the HKEY_LOCAL_MACHINE key, I could theoretically parse the file path, which appears to contain the text representing the version. This seems hacky, though, and I have to learn Gentee programming language to do it (trying to avoid that). Also, as I said before, I am not guaranteed to have this path location if I am only able to find the HKEY_CURRENT_USER key. Perhaps if I could reliably find the .rhp through a brute force file search, this would be my best option.
Just thought I would put this out there to see if you have any thoughts (David?). :) If I don't hear anything from the community, I'm going to try to do the brute force search and parsing method...
Thanks,
Marc
…
s in Python:
...and if I print ghc.CullDuplicates(curve_points) I see the actual names of the outputs in the Python editor:
...so I can either do:
a,b,c = ghc.CullDuplicates(curve_points)
...or:
a = ghc.CullDuplicates(curve_points)[0]
b = ghc.CullDuplicates(curve_points)[1]
c = ghc.CullDuplicates(curve_points)[2]
...or even:
a = ghc.CullDuplicates(curve_points).points
b = ghc.CullDuplicates(curve_points).indices
c = ghc.CullDuplicates(curve_points).valence
And multiple inputs are just separated by commas within the parenthesis.
But the component is defaulting to Average instead of Leave One, which doesn't give me much useful. I'm trying to remove duplicate lines quickly, of 25K lines, and this is the fastest component in Grasshopper I've found to do that, by finding the line midpoint then getting the indices output from CullDuplicates to find out which are keepers.
There's no documentation about what Average even means, and it spits out a bunch of -1s, with the resulting lines culled by index of the good numbers being rather odd compared to Leave One, which just works naturally, like a human being would want it to.
Is it possible to change the component mode from Average to Leave One from Python?
Rhinocommon seems to lack a cull duplicate lines/curves command, so I'm hoping Grasshopper components will be faster than raw interpreted (uncompiled) Python.
…
Added by Nik Willmore at 11:22am on February 11, 2016
I have the IES files from the manufacturers. I am able to get the IES files to load and run in Honeybee. However the light levels being produced are low and very localized to the light source. I am trying to determine if it’s some scaling, etc that needs to be modified. Within Honeybee there is a “CandelaMultiplier” which allows me to increase the values, but I don’t want to do it arbitrarily nor am I sure this is truly solving my problem.
If anyone has any insight as to importing IES files into Honeybee and things that need to be factored and considered that would be appreciated. I'm experiencing the situation with other IES files as well.
Thank you!
Screenshots: 1 candela multiplier, 5 candela multiplier, 5 candela multiplier 2 lum web, legend and screenshot of grasshopper interface:
Files attached: SunCentral IES file, Rhino, and Grasshopper
…