ll.
What it does have to do with is an ancient and basically fundamental design problem with Windows itself. This problem is typically called "DLL Hell". In the beginning ((Windows 2) when RAM was expensive and scarce, MS enabled Windows programs to use many different small modules that were loaded dynamically (DLL = Dynamic Link Library) as needed. It quickly became common practice for different programs to use the same DLL file to do the same thing.
But nasty problems happened when Program A updated a DLL in a way the caused Program B, which used the same DLL, to crash. MS spent literally thousands of support hours resolving these problems. That was very expensive.
So starting with Windows 7 (I think) Microsoft tried to reduce this kind of issue by establishing the WINSXS directory. It's purpose is to store all the versions of a DLL file used by different programs. It also has internal links so that different programs references to a given DLL are mapped to the copy of that DLL Windows has saved in WINSXS for each application. This keeps all the same-named DLLs separate and lets each program use it's own copy.
That's the theory, and it works OK as long as everything with WINSXS is OK. But - if somethings goes wrong with WINSXS, then the program can't find the DLL it needs, and you get the "Windows Side-by-Side" error message. This prevents the program from running.
There are no tools for dealing with WINSXS. The best method I know of to fix WINSXS problems is to completely uninstall the failing program and reinstall it. This either will work, or it won't. If it fails to work you can try restoring from a prior Restore Point. If that fails you will probably have to reinstall Windows and start over with reinstalling all your software.
Remember, I said it was a bad problem.
There is another issue with WINSXS that gets little attention, and that is that it gets larger every time you install a program. This is because Windows does not do a good job of removing things from WINSXS. It seems that with WIN 8/10 MS has improved this slightly, but WINSXS will still get increasingly large over time.
This means that at some point it will either fail in some way or consume all the space on your boot disk. So a good idea is to do a complete boot disk reformat/Windows reinstall every few years.…
pper" in the command line in Rhino:
"Unable to load Grasshopper.dll plug-in: Rhino version not specified."
Details of the command line are as follows:
Command: GrasshopperRhino.NET plug-in: C:\Program Files\Rhinoceros 4.0\Plug-ins\Grasshopper\Grasshopper.dll> - referenced assembly count: 20> - mscorlib> - Microsoft.VisualBasic> - System.Windows.Forms> - GH_IO> - System.Drawing> - System> - RhinoCommon> - GH_Util> - OpenTK.GLControl> - QWhale.Editor> - QWhale.Syntax> - QWhale.Syntax.Parsers> - System.Core> - System.Design> - System.Xml> - System.Data> - OpenTK> - QWhale.Common> - System.Xml.Linq> - System.ServiceModel> Rhino.NET error: unable to locate a reference to Rhino_DotNET.DLL> Unable to load Grasshopper.dll plug-in: Rhino version not specified.
I tried creating the new user and looks like that one works too, but I do need my current "user" profile as there are a lot of things already set up well, do not want to miss those.
If someone could advise me on where to look for the problem?
Thank you,
Artem
…
where each is made into a grid. I am then using ptMorph3dList to distribute objects from a list of objects around each ring independently.
I am using a matrix of data where each column of data is 145 unique values (measured sky luminance). And i have about 200 columns, each represents a time series measurement of the sky dome (one day total).
Everything is working great when i reference a list of mesh objects to distribute using ptMorph3dList. But i actually want to do something a bit more simple.
I just want to distribute from a list of objects, (petals.PNG) each of which is multiple BREPs. I dont think ptMorphList can do this, and i am not interested in morphing the geometry in this case. I just want to assign a particular petal object (from 1-4) to a location on the ring (with proper orientation to the surface normal) based on an assessment of the measured luminance value from my column of data (low to high, e.g. 0 - 10,000).
Any suggestions for how to do this? Can ptMorphList accommodate these petal objects that i have created somehow? Is there a better approach using paneling tools? Or a way to do this using more basic commands?
A more basic way of asking this question would be something like this: "How can i evenly (by surface area) distribute 145 objects over a hemisphere, where, for each object it is a cube, cone, or cylinder depending on the value of a column of numerical data with 145 observations?
Then, i would like to substitute far more complex objects (or groups of objects) for the cube, cone, cylinder.
What i am trying to do is drive a dynamic surface with data from high dynamic range images of the sky, where the luminance data has been binned into 145 sky subdivisions (klems patches).
Files attached. Any suggestions would be appreciated. Having great fun with Paneling Tools!
…
sion):
When I run the analysis: it shows: solution exception: expected index value got str
Length of the results [=1] is not equal to the number of mesh faces [=72]
What is the source of length of the results?
Question 1_2_For the 004_gridBasedAnalysis (new version):
I attached new box by adding new breps, and the floor shows the numbers on the floor.
The result would change when I changed the opening ratio in step 7, but it would not change when lower or higher the opening ratio in step 6. Therefore, I am confused of the work of index for opening ratio in step 6.
Question 2 _For illuminanceAnalysis
I would like to attach customized geometry for window, so I tried this file.
The floor brep is unable to be loaded when I open the “ illuminanceAnalysis” file that you posted online, but the window brep is loadable.
If I would like to analyze different geometry of fenestration, such as perforated screen, should I attach the screen to the window brep?
Question 3_For Shading for daylighting
I would like to do the shading effect based on grid Analysis, so I add floor in the original file but it shows error “ index out of range: 0”.
If I would like to use different geometry of louvers, such as teethed blind, what can I do for that?
Above all, I would like to analyze different geometry of fenestration systems, such as special louvers or perforated screens, so I would like to attach those complex geometry to daylight analysis. When I went through the workshop video on youtube, I guess those analysis is mainly based on glazing, so I am still confused that how I can connect different geometry of fenestration to Ladybug and Honeybee. Is there any example file that shows analysis of perforated screen or similar design?
Thank you so much for your reply.…
and 7 floors) depending on the size of their areas of surfaces. I managed to do it. Then I tried to divide buildings into frames/staircases (more or less). Then, I wanted to assign appropriate numbers to the proper frame/staircase. Like I did it before with whole buildings. Here is a problem. I'm lost in the lists. Could somebody help me with it? Disscution about lines and boolean regions
Columns in Excel: A - year B - population number C - % of kids in 0-2 age D - % of kids in 3-6 age
…
or create a form through code.
2) Add a public function to your component that displays this form, I recommend you use form.ShowDialog() for now to avoid weird conditions with non-modal forms.
3) Override the method Menu_AppendCustomComponentItems() on your Component and add an extra menu item that will show the form (i.e. when clicked, it will call the function defined in step [2].
4) Create a new class and derive it from Grasshopper.Kernel.Attributes.GH_ComponentAttributes. (if you don't want to offer double-click functionality, you can skip steps 4 to 6)
5) Override the RespondToMouseDoubleClick() method on the new attributes and also call the function defined in step [2]
6) Override the CreateAttributes() method on your Component class and construct an instance of the custom attributes defined in step [4] instead.
7) Once you've shown the form and the user has clicked OK, you need to assign values and invalidate the Component, then start a new Solution.
Here's some code:
Public Class MySpecialComponentAttributes
Inherits GH_ComponentAttributes
Public Sub New(ByVal comp As MySpecialComponent)
MyBase.New(comp)
End Sub
Public Overrides Function RespondToMouseDoubleClick( _
ByVal sender As GH_Canvas, _
ByVal e As GH_CanvasMouseEvent) As GH_ObjectResponse
DirectCast(Me.Owner, MySpecialComponent).DisplayForm()
Return Canvas.GH_ObjectResponse.Handled
End Function
End Class
Public Class MySpecialComponent
Inherits GH_Component
.....
.....
Protected Overrides Sub Menu_AppendCustomComponentItems( _
ByVal iMenu As ToolStripDropDown)
Menu_AppendGenericMenuItem(iMenu, "Set Values", AddressOf Menu_SetValues)
End Sub
Private Sub Menu_SetValues(ByVal sender As Object, ByVal e As EventArgs)
DisplayForm()
End Sub
Public Sub DisplayForm()
Dim frm As New MySpecialForm()
Grasshopper.GUI.GH_WindowsFormUtil.CenterFormOnCursor(frm, True)
If (frm.ShowDialog() = DialogResult.OK) Then
'Harvest values from form and assign them to local variables
Me.ExpireSolution(True)
End If
End Sub
End Class
--
David Rutten
david@mcneel.com
Turku, Finland…
I am not knowledgeable about google maps nor google maps api, but from what I read the two components will definitely show a bit different results due to different topography sources.If it is judging by this 2010 article, your Terrain Generator component offers much higher precisions for USA. Precision goes up to a couple of meters, which is amazing!!On the global scale it offers either SRTM 1 or 3 arc-second data or 30 arc-second GLOBE data. Again this is from the mentioned article, I couldn't find this information by searching the Google Maps website.Terrain Generator 2 component always uses SRTM 1 arc-second data from opentopography.org, and it is limited to 60 degrees north and does not have data for Antarctica. It does not come with satellite image either which is another very convenient feature that you have!I couldn't find information about the allowed radius provided by the Google maps api free account. I limited the "radius_" input to 100 000 meters, even though opentopography.org provides more than that (I successfully downloaded 300 000, but Rhino 5 was not able to create a topography on my PC from such a large amount of data).Even though I couldn't compare the results from two components, by looking at your upper example_LB_terrain_generator.gh definition: set the "I" input of "Surface from points" component to True. In this way the surface will be interpolated through points, which is what we want.
Again thank you for the permission, and I look forward seeing those high precision topography that Google maps offers!!…
have some spare time please fill in my 3D Printing Open Survey - If you could make almost anything, what would it be ? Updated results are publicly available after completing questionnaire (Please press "Wyślij" - Send button and "Wyniki ankiety" - Results button at the end). This survey will be used to evaluate demand for 3d printing services globally. It consist of 30 questions about: - open-source 3d printers - future of additive manufacturing - 3d printing services - ecology in 3d printing - copyright issues and 3d printing Three example questions: 2. Which of the following 3d printing applications is the most interesting? * - Things personalization - Printing food - Attempts to print structures resembles in functioning living tissues or blood vessels - Creating impossible or difficult to create by using conventional technology things - Printing rooms or buildings on earth/moon - Printing chemical compounds (for example drugs) - Using in renewable energy sources - Printing parts and/or mechanical vehicles 3 . Have you ever heard about cheap DIY 3D Printers (for example RepRap, PrintrBot, MakiBox A6) ? * DIY - Do It Yourself - Yes - No 4 . When 3D Printers will become one of the typical household appliances ? * - After 5 years - After 10 years - After 15 years - After 20 years or later - Never - I don't know Feel free to ask questions!…
ers can be applied from the right click Context Menu of either a component's input or output parameters. With the exception of <Principal> and <Degrees> they work exactly like their corresponding Grasshopper Component. When a I/O Modifier is applied to a parameter a visual Tag (icon) is displayed. If you hover over a Tag a tool tip will be displayed showing what it is and what it does.
The full list of these Tags:
1) Principal
An input with the Principal Icon is designated the principal input of a component for the purposes of path assignment.
For example:
2) Reverse
The Reverse I/O Modifier will reverse the order of a list (or lists in a multiple path structure)
3) Flatten
The Flatten I/O Modifier will reduce a multi-path tree down to a single list on the {0} path
4) Graft
The Graft I/O Modifier will create a new branch for each individual item in a list (or lists)
5) Simplify
The Simplify I/O Modifier will remove the overlap shared amongst all branches. [Note that a single branch does not share any overlap with anything else.]
6) Degrees
The Degrees Input Modifier indicates that the numbers received are actually measured in Degrees rather than Radians. Think of it more like a preference setting for each angle input on a Grasshopper Component that state you prefer to work in Degrees. There is no Output option as this is only available on Angle Inputs.
7) Expression
The Expression I/O Modifier allows you change the input value by evaluating an expression such as -x/2 which will have the input and make it negative. If you hover over the Tag a tool tip will be displayed with the expression. Since the release of GH version 0.9.0068 all I/O Expression Modifiers use "x" instead of the nickname of the parameter.
8) Reparameterize
The Reparameterize I/O Modifier will only work on lines, curves and surfaces forcing the domains of all geometry to the [0.0 to 1.0] range.
9) Invert
The Invert Input Modifier works in a similar way to a Not Gate in Boolean Logic negating the input. A good example of when to use this is on [Cull Pattern] where you wish to invert the logic to get the opposite results. There is no Output option as this is only available on Boolean Inputs.
…