all normals got pointed to the outside.
But I am still not out of the woods - even though the normals are OK now. I attached a 3DM file baked from my current GH layout. The part is made using 4 basic steps: (1) capping the outside surface which is made by joining 2 surfaces, each lofted from 11 polyline curves, (2) capping the inside surface made by lofting 11 circles, (3) whacking 5 units of height off the bottom of (2) by doing SDiff with a 5 unit high capped cylinder, and (4) using SDiff to subtract (3) from (1)
Step 3 is necessary to allow for a solid bottom thickness of 5 units. All the surfaces are NURBS, none have been converted to meshes.
I would have thought that there would be no problems printing this part because it is made from only solid surfaces. The 3DM file has no naked edges - which is what I expected. But my generated STL file is 23.19 MB in size and the 3D Builder program says it has errors. The 3DB program "fixes" the errors, but when it does so it closes the top of the part, so that function is useless. 3DB will also simplify the STL file and create a resulting file that is much smaller, but this also has problems that would result in a failed 3D print.
I totally realize that my problem may lie completely outside GH & Rhino and I don't mean to add clutter up this board with extraneous posts. It's just that I have not had issues like this until I tried the idea of joining 2 lofted surfaces that have reverse twists. I have made many parts before that included reverse twists - but not lofted surfaces. Here is just one example: http://www.thingiverse.com/thing:1606442…
Added by Birk Binnard at 3:22pm on September 14, 2016
ber of mesh vertices is defined as (precision_+1)^2.So if you would like to have its beam, diffuse and ground-reflected components as well, that means 3 * 8760 values per single point.Example: if you set your precision_ input to 20, the number of values would be a couple of millions:
(20+1)^2 * 8760 * 3 = 11 589 480 hourly values
Check the attached definition below. The outputs that you need are: "Ebeam", "Ediffuse", "Eground".They contain annual hourly values for each tilt and azimuth combination (that's what upper mesh vertices represent) in a data tree.…
ización de estructuras, panelización de superficies, gestión y conexión con tablas de datos, automatización de dibujo, programación visual … Adjuntamos el temario del cuso. El contenido del curso ha sido revisado y ampliado, gracias a la experiencia de nuestros anteriores. Está orientado a profesionales y estudiantes de arquitectura y diseño en general.
Será impartido por dos Authorized Rhino Trainers en Madrid, en la calle Bailén. Tiene un formato intensivo de 18 horas; el horario es: viernes, de 17 a 21; sábado, de 10 a 14 y de 16 a 20; y domingo, de 11 a 14 y de 16 a 19. El número de asistentes está limitado a un máximo de 8 personas.…
Added by Miguel Vidal at 11:11am on December 17, 2009
hem. Now I need to search through the original points that comprise the voronoi diagram and replace them with the new averaged points. I need to do this while still preserving the logic of the old data tree which is comprised of {i}j values. In other words each point is grouped into a vornoi cell so that the cells can be created with the polyline component
I believe I have a relatively simple solution, but need help create a python script that searches and replaces values within a data tree.See the psuedo code below:
Psuedo-Code:
For each item(i) in Data tree B (list of index values points to be replaced grouped into a data tree corresponding to the new point) find the corresponding integer in Data tree C (list of points grouped around {i;j} values)Then replace the integer in Data Tree C with the key value (the data tree path) that corresponds to the item from Data tree B that is replacing the item from Data tree CFor example:Data Tree B{14}(0)2(1)3(2)6(3)11(4)13(5)14Data Tree C{0;1}(0)2(1)3(2)6Output:Data Tree {0;1}(0){14}(1){14}(2){14}
List A - Single point (New Point) with Data Tree/Key value corresponding to group of points it will replace ( List B)
List B-list of index values of flattened voronoi point list with Data Tree/Key Value corresponding to List A - in other words these are all the points I need to replace with the point in List A
List C-list of index values of flattened voronoi point list with Data Tree/Key Value corresponding to {i}j values necessary to re-create voronoi cells with the polyline component
Once this is done I can use the Output and the new Points in List A to replace the set of old points in the original voronoi diagram with the new set up reduced points.
If there is another way to achieve the goal of eliminating small edges of a vorononi diagram, I'm open to suggestions.
…
rights to register the "mapwingis.ocx" file.Francesco, would you be patient just a tiny little bit, so that we could try something else? I would be grateful if you could.
1) Close Grasshopper and Rhino2) Run the Revo Uninstaller Pro and uninstall your MapWinGIS application along with removing all the leftovers from the registry.3) Restart your PC, and once it boots again, make sure that you are logged in as an Adminstrator.4) In your Start menu's search box type: "UAC", which will find your User Account Control Settings. Click on it, and a new window will open. Set the bar on the left to "Never notify".5) Turn off your Antivirus, which ever it is.6) Download the 64 bit version of v4.9.4.2 MapWinGIS.7) Right click on downloaded MapWinGIS-only-v4.9.4.2-x64.exe file, and choose "Properties". If there is "Unblock" button click on it, and then click on "OK". If there is no "Unblock" button, just click on "OK".8) Left double click on MapWinGIS-only-v4.9.4.2-x64.exe file and install it to "C:\dev\MapWinGIS" folder. Choose "Full installation" during installation process!9) In your Start menu's search box type: "CMD". Once the "Command prompt" appears do not left click on it! Instead right click on it, and choose "Run as Administrator".10) A command prompt window will open. Type the following command:
"your_regsvr32_folder_path\regsvr32.exe" /u /s c:\dev\mapwingis\mapwingis.ocx
If command does not result in an error message, then type this one afterwards:
"your_regsvr32_folder_path\regsvr32.exe" /s c:\dev\mapwingis\mapwingis.ocx
11) If no error appeared again, then open your Rhino and Grasshopper and check what Gismo_Gismo component prints from its "readMe!" output.If errors appeared, it would be nice if you could post their screenshots.…
Added by djordje to Gismo at 5:46am on March 27, 2017
EP output variables are to calculate outdoorAirEnergy?
Thank you very much!
Output variables on the Read EP Results component:[1] totalThermalEnergy=cooling+heating[2] thermalEnergyBalance=cooling (-)andheating (+)[3] cooling= Zone Ideal Loads Supply Air Total Cooling Energy [J](Hourly)=Zone Ideal Loads Supply Air Sensible Cooling Energy [J](Hourly)+ Zone Ideal Loads Supply Air Latent Cooling Energy [J](Hourly)[4] heating= Zone Ideal Loads Supply Air Total Heating Energy [J](Hourly)= Zone Ideal Loads Supply Air Sensible Heating Energy [J](Hourly) + Zone Ideal Loads Supply Air Latent Heating Energy [J](Hourly)[5] electricLight=Zone Lights Electric Energy [J](Hourly)[6] electricEquip=Electric Equipment Electric Energy [J](Hourly)[7] peopleGains=Zone People Total Heating Energy [J](Hourly)[8] totalSolarGain=Zone Windows Total Transmitted Solar Radiation Energy[9] infiltrationEnergy=Zone Infiltration Total Heat Gain Energy (+)andZone Infiltration Total Heat Loss Energy (-)[10] outdoorAirEnergy= ???[11] natVentEnergy=Zone Ventilation Total Heat Gain Energy (+)andZone Ventilation Total Heat Loss Energy (-)[12] operativeTemperature=Zone Operative Temperature[13] airTemperature=Zone Mean Air Temperature[14] meanRadTemperature=Zone Mean Radiant Temperature[15] relativeHumidity=Zone Air Relative Humidity[16] airFlowVolume=[infiltrationFlow] Zone Infiltration Standard Density Volume Flow Rate+[natVentFlow] Zone Ventilation Standard Density Volume Flow Rate+[mechSysAirFlow] Zone Mechanical Ventilation Standard Density Volume Flow Rate+[earthTubeFlow] Earth Tube Air Flow Volume[17] airHeatGainRate=[surfaceAirGain] Zone Air Heat Balance Surface Convection Rate+[systemAirGain] Zone Air Heat Balance System Air Transfer Rate
Output variables on the Read EP Surface Results component:[1] surfaceIndoorTemp= Surface Inside Face Temperature[2] surfaceOutdoorTemp=Surface Outside Face Temperature[3] surfaceEnergyFlow=[opaqueEnergyFlow] Surface Average Face Conduction Heat Transfer Energy+[glazEnergyFlow] Surface Window Heat Gain Energy[4] opaqueEnergyFlow =Surface Average Face Conduction Heat Transfer Energy[5] glazEnergyFlow= Surface Window Heat Gain Energy[6] windowTotalSolarEnergy=Surface Window Transmitted Solar Radiation Energy[7] windowBeamEnergy=Surface Window Transmitted Beam Solar Radiation Energy[8] windowDiffEnergy=Surface Window Transmitted Diffuse Solar Radiation Energy[9] windowTransmissivity=Surface Window System Solar Transmittance…
to create building blocks in this grid. The problem I have is that my input list to cull pattern has 6 rows of 11 curves. And I have a cull pattern with 10 variations to select 2 of the 11 curves but I want to apply each pattern to each row. This sounds like a Cross Reference option on other components but this option is greyed out for Cull Pattern.
So instead the result I get is the first pattern is applied to the first row and the second to the second etc. until I run out of rows and then everything else is on the top row. see Image.
They only way I have found to get it to work is to split each row into it's own cull pattern component and apply the whole list of booleans to each row. But as I would like this definition to be adaptable allowing the user to specify number of rows and columns, there would be some limitation if copy/paste approach is the only option.
There is probably a better way of selecting these adjacent curves so I am open to all suggestions.
…
ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009
it gives me these Errors
Error Line 6: Runtime error (MissingMemberException): 'CustomTable' object has no attribute 'GetObjectList'
Error Line 11:Runtime error (NotSupportedException): This call is not supported from within a Grasshopper component
I have internalised the Sample Geo to Bake into Rhino:Meters file to Cut down on Downloads
Any thoughts, much appreciated
Matt
…
Added by Matt Gaydon at 11:03am on January 19, 2015
ectural context.
We will work with 5 projects that meet the conditions to be re-thinked nowadays in parametrical terms. { FOA : World Trade Center / MAD OFFICE : 800M Tower / TOYO ITO : Relaxation Park / FOSTER & PARTNERS : Gherkin Tower / FREE : Soumaya Museum }
We will produce dynamic objects defined by parameters and modified in realtime.
We will learn to discretize, facet and panel in a non homogeneous way.
We will work with restrictions to determine our shapes, obtaining unpredictable results.
And we will take the control of what we produce : by measuring , visualizing and optimizing our parametric forms.
2 Groups / 30 students max :
Thursdays : 25 Apr ,02 ,09 ,16 & 23 May
Saturdays : 27 Apr ,04 ,11, 18 & 25 May
Fee : 73 € / student…
Added by Carlos Bañón at 10:26am on April 18, 2013