Search
  • Sign In

Grasshopper

algorithmic modeling for Rhino

  • Home
    • Members
    • Listings
    • Ideas
  • View
    • All Images
    • Albums
    • Videos
    • Architecture Projects
    • Installations
    • Add-ons
  • Download
    • Rhino 7 w/Grasshopper
    • Add-ons
  • Forums/Support
    • Current Discussions
    • Legacy Forum
  • Learn
    • Getting Started
    • Online Reference
    • API documentation
    • Video Tutorials
    • Common Questions
    • Scripting and Coding
    • Books and Articles
  • Attend
  • My Page

Search Results - 澳洲快乐8如何挣钱-『9TBH·COM』澳门大乐透49码--2023年3月19日6时46分34秒.H5c2a3.keyn8m8w9-gov-hk

Topic: DataTree selection rules
will work slightly different from before. Sorry about breaking this, but it proved impossible to improve the selection logic with the fairly ambiguous notation that was implemented already. Not every change is breaking though and I hope that most simple matching rules will work as before. There will be a McNeel webinar on Wednesday the 6th of November where I discuss the new selection rules (as well as path mapping syntax and relative offsets within one or more data trees). This will be a pretty hard-core webinar aimed at expert users. The event will be recorded so you can always go and watch it later. I figured I'd briefly explain the new selection rules on Ning before I release the update though. ------------------------------------------------------------------------------- Imagine we have the following data tree, containing a bunch of textual characters: {0;0} = [a,e,i,o,u,y] {0;1} = [ä,ë,ê,ï,î,ö,ô,õ,ü,û,ÿ,ý] {1;0} = [b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z] {1;1} = [ç,ĉ,č,ĝ,ř,š,ş,ž] There are a total of four branches {0;0}, {0;1}, {1;0} and {1;1}. The first branch contains all the vowels that are part of the standard English alphabet. The second branch contains all non-standard vowels and branches three and four contain the standard and non-standard consonants respectively. So what if we want to select from this tree only the standard vowels? Basically include everything in the first branch and disregard everything else. We can use the [Tree Split] component with a selection rule to achieve this: {0;0} This selection rule hard-codes the number zero in both tree path locations. It doesn't define an item index rule, so all items in {0;0} will be selected. If we want all the vowels (both standard and non-standard), then we have several options: {0;?}         = select all branches that start with 0 {0;(0,1)}    = select all branches that start with 0 and end in either 0 or 1 {0;(0 to 1)} =    ......................................... and end in the range 0 to 1. Conversely, selecting all standard vowels and consonants while disregarding all non-standard character can be achieved with rules as follows: {?;0} {(0,1);0} {(0 to 1);0} It is also possible to select items from each branch in addition to limiting the selection to specific branches. In this case another rule stated in square brackets needs to be appended: {0;?}[0 to 2] The above rule will select the first three vowels from the standard and the non-standard lists. Basically, rules work in a very consistent way, but there are some syntax conventions you need to know. The first thing to realize is that every individual piece of data in a data-tree can be uniquely and unambiguously identified by a collection of integers. One integer describes its index within the branch and the others are used to identify the branch within the tree. As a result a rule for selection items always looks the same: {A;B;C;...;Z}[i]              where A, B, C, Z and i represent rules. It's very similar to the Path Mapper syntax except it uses square brackets instead of parenthesis for the index (the Path Mapper will follow suit soon, but that won't be a breaking change). You always have to define the path selector rule in between curly brackets. You can supply any number of rules as long as you separate them with semi-colons. The index rule is optional, but -when provided- it has to be encased in square brackets after the path selection rule(s). The following rule notations are allowed: *  Any number of integers in a path ?  Any single integer 6  Any specific integer !6  Anything except a specific integer (2,6,7)  Any one of the specific integers in this group. !(2,6,7)  Anything except one of the integers in this group. (2 to 20)  Any integer in this range (including both 2 and 20). !(2 to 20) Any integer outside this range. (0,2,...)  Any integer part of this infinite sequence. Sequences have to be at least two integers long, and every subsequent integer has to be bigger than the previous one (sorry, that may be a temporary limitation, don't know yet). (0,2,...,48)  Any integer part of this finite sequence. You can optionally provide a single sequence limit after the three dots. !(3,5,...)  Any integer not part of this infinite sequence. The sequence doesn't extend to the left, only towards the right. So this rule would select the numbers 0, 1, 2, 4, 6, 8, 10, 12 and all remaining even numbers. !(7,10,21,...,425)  Any integer not part of this finite sequence. Furthermore, it is possible to combine two or more rules using the boolean and/or operators. If you want to select the first five items in every list of a datatree and also the items 7, 12 and 42, then the selection rule would look as follows: {*}[(0 to 4) or (6,11,41)] The asterisk allows you to include all branches, no matter what their paths looks like. It is at present not possible to use the parenthesis to define rule precedence, rules are always evaluated from left to right. It is at present also not possible to use negative integers to identify items from the end of a list. If you want to know more, join the Webinar on Wednesday! -- David Rutten david@mcneel.com Seattle, WA…
Added by David Rutten at 8:57pm on November 3, 2013
Topic: Release Notes - Ladybug 0.0.63 and Honeybee 0.0.60
nd improvements.  Many of the new features and components announced in the last release have become stable and have emerged from their WIP section.  Additionally, after two years of work, we are happy to announce that we finally have full support of an OpenStudio connection within Honeybee, which has ushered in a whole host of new features, notably the modelling of detailed HVAC systems. As always you can download the new release from Food4Rhino. Make sure to remove the older version of Ladybug and Honeybee and update your scripts.   LADYBUG 1 - Solar Hot Water Components Out of WIP After much beta-testing, bug-fixing, and general development, all of the Photovoltaic and Solar Hot Water components are now fully out of WIP!  The main component is based on a Chengchu Yan's publication. Components have been added to Ladybug thanks to the efforts of Chengchu Yan and Djordje Spasic..  See Djorje’s original release post of the solar hot water components for more information on the components that just made it out of WIP. 2 - New Terrain Shading Mask Released in WIP In addition to Djordje’s prolific addition of renewable energy components, he has also contributed a widely-useful component to generate terrain shading masks, which account for the shading of surrounding mountains/terrain in simulations.  While initially added to assist the solar radiation radiation and renewable energy components, the component will undergo development to optimize it for energy and daylight simulations over the next few months. Another new component called Horizon Angles can be used to visualize and export horizon angles. You can test them out now by accessing them in the WIP section.  For more information, see Djordje’s release post on the GH forum here. 3 - New Mesh Selector Component After realizing that the Optimal Shade Creator component has applications to a whole range of analyses, it has now been re-branded as the Mesh Selector and has been optimized to work easily with these many analyses. Specifically, the component selects out the portion of a mesh that meets a given threshold.  This can be the portion of a shade benefit analysis meeting a certain level of shade desirability, the portion of a radiation study meeting a certain level of fulx, the portion of a daylight analysis meeting a certain lux threshold, and much more! 4 - Solar Adjusted Temperature Now Includes Long Wave Radiation Thanks to a question asked by Aymeric and a number of clarifications made by Djordje Spasic, the Solar Adjusted Temperature component now includes the ability to account for long-wave radiative loss to the sky in addition to it original capability to account for short wave radiation from the sun.  As such, the component now includes all capabilities of similar outdoor comfort tools such as RayMan.  The addition of this capability is also paralleled by the addition of a new horizontalInfraredRadiation output on the ImportEPW component.  See the updated solar adjusted example file hereto see how to use the component properly. 5 - Support for both Log and Power Law Wind Profiles In preparation for the future release of the Butterfly CFD-modelling insect, the Ladybug Wind Profile component now includes the option of either power law or log law wind profiles, which are both used extensively in CFD studies.  Thanks goes to Theodoros Galanos for providing the formulas! 6 - New Radiant Asymmetry Comfort Components Prompted by a suggestion from Christian Kongsgaard, Ladybug now includes components to calculate radiant asymmetry discomfort!  For examples of how to use the components see this example file for spatial analysis of radiant asymmetry discomfort and this example for temporal analysis. 7 - Pedestrian Wind Comfort Component Released in WIP In preparation for the impending release of the butterfly CFD-modelling insect, Djordje Spasic with assistance from Liam Harrington has contributed a component to evaluate outdoor discomfort and pedestrian safety. The component identifies if certain areas around the building are suitable for sitting, building entrances-exits, window shopping... based on its wind microclimate. Dangerous areas due to high wind speeds are also identified.You can check it out now in the WIP section.​ HONEYBEE 1 - New HVAC Systems and Full OpenStudio Support After a significant amount of development on the part of the OpenStudio team and two years of effort on the part of LB+HB developers, we (finally!) have full support for an OpenStudio connection within Honeybee.  By this, we mean that any energy simulation property that can be assigned to a HBZone will be taken into account in the simulation run by the OpenStudio component.  The connection to OpenStudio has brought with it several new capabilities.  Most notably, you can now assign full HVAC systems and receive energy results in units of electricity and fuel instead of simple heating and cooling loads.  This Honeybee release includes 14 built-in HVAC template systems that can be assigned to the zones, each of which can be customized: 0. Ideal Air Loads 1. PTAC | Residential 2. PTHP | Residential 3. Packaged Single Zone - AC 4. Packaged Single Zone - HP 5. Packaged VAV w/ Reheat 6. Packaged VAV w/ PFP Boxes 7. VAV w/ Reheat 8. VAV w/ PFP Boxes 9. Warm Air Furnace - Gas Fired 10.Warm Air Furnace - Electric 11.Fan Coil Units + DOAS 12.Active Chilled Beams + DOAS 13.Radiant Floors + DOAS 14.VRF + DOAS Systems 1-10 are ASHRAE Baseline systems that represent much of what has been added to building stock over the last few decades while systems 11-14 are systems that are commonly being installed today to reduce energy use.  Here is an example file showing how to assign these systems in Honeybee and interpret the results and here is an example showing how to customize the HVAC system specifications to a wide variety of cases.  To run the file, you will need to have OpenStudio installed and you can download and install OpenStudio from here. In addition to these template systems within Honeybee, the OpenStudio interface includes hundreds of HVAC components to build your own custom HVAC systems. OpenStudio also has a growing number of user-contributed HVAC system templates that have been integrated into a set of scripts called "Measures" that you can apply to your OpenStudio model within the OpenStudio interface. You can find these system templates by searching for them in the building components library. Here is a good tutorial video on how to apply measures to your model within the OpenStudio interface.  Honeybee includes a component that runs these measures from Grasshopper (without having to use the OpenStudio interface), which you can see a demo video of here.  However, this component is currently in WIP as OpenStudio team is still tweaking the file structure of measures and it is fairly safe to estimate that, by the next stable release of Honeybee, we will have full support of OpenStudio measures within GH. 2 - Phasing Out IDF Exporter With the connection to OpenStudio now fully established, this release marks the start of a transition away from exporting directly to EnergyPlus and the beginning of Honeybee development that capitalizes on OpenStudio’s development. As such THIS WILL BE THE LAST STABLE RELEASE THAT INCLUDES THE HONEYBEE_RUN ENERGY SIMULATION COMPONENT. The Export to OpenStudio component currently does everything that the Run Energy Simulation component does and, as such, it is intended that all GH definitions using the Run Energy Simulation component should replace it with the OpenStudio component.  You can use the same Read EP Result components to import the results from the OpenStudio component and you can also use the same Energy Sim Par/Generate EP Output components to customize the parameters of the simulation.  The only effective difference between the two components is that the OpenStudio component enables the modeling of HVAC and exports the HBZones to an .osm file before converting it to an EnergyPlus .idf.   For the sake of complete clarity, we should state that OpenStudio is simply an interface for EnergyPlus and, as such, the same calculation engine is under the hood of both the Export to OpenStudio component and the Run Energy Simulation component.  At present, you should get matching energy simulation results between the Run Energy Simulation component and a run of the same zones with the OpenStudio component (using an ideal air system HVAC). All of this is to say that you should convert your GH definitions that use the Run Energy Simulation component to have the OpenStudio component and this release is the best time to do it (while the two components are supported equally).  Additionally, with this version of Honeybee you will no longer need to install EnergyPlus before using Honeybee and you will only need to install OpenStudio (which includes EnergyPlus in the install). 3 - New Schedule Generation Components Thanks to the efforts of Antonello Di Nunzio, we now have 2 new components that ease the creation of schedule-generation in Honeybee.  The new components make use of the native Grasshopper “Gener Pool” component to give a set of sliders for each hour of the day.  Additionally, Antonello has included an annual schedule component that contains a dictionary of all holidays of every nearly every nation (phew!).  Finally, this annual schedule component can output schedules in the text format recognized by EnergyPlus, which allows them to be written directly into the IDF instead of a separate CSV file.  This will significantly reduce the size of files needed to run simulations and can even reduce the number of components on your canvas that are needed to add custom schedules. For more information, see Antonello’s explanatory images here and Antonello's example file here.  You can also see a full example file of how to apply the schedules to energy simulations here. 4 - EnergyPlus Lookup Folder, Re-run OSM/IDF, and Read Result Dictionary With the new capabilities of OpenStudio, we have also added a number of components to assist with managing all of the files that you get from the simulation.  In particular, Abraham Yezioro has added a Lookup EnergyPlus Folder component that functions very similarly to the Lookup Daylight Folder component.  This way, you can run an Energy simulation once and explore the results separately.  Furthermore, we have added components to Re-Run OpenStudio .osm files or EnergyPlus .idf files within Grasshopper.  These components are particularly useful if you edit these .osm or .idf files outside of Honeybee and want to re-run them to analyze their results in Grasshopper.  Lastly, a component has been added to parse the .rdd (or Result Data Dictionary) file that EnergyPlus produces, enabling you to see all of the possible outputs that you can request from a given simulation. 5 - Electric Lighting Components Out of WIP After Sarith Subramaniam’s initial components to model electric lights with Radiance in the last release, we are happy to report that they have been fully tested and are out of WIP.  Improvements include support for all types of light fixture geometries and the ability to use the components in a more “Grasshoppery” list-like fashion.  See Sarith’s original release post for more information and several example files showing how to use the components can be found here. 1  , 2  , 3  . 6 - Improvements to THERM Components A number of bug fixes and improvements have been made to the THERM components in order to make their application more flexible and smooth.  Special thanks is due to Derin Yilmaz , Mel King , Farnaz , Ben (@benmo1) , and Abraham Yezioro for all of the great feedback in the process of improving these components. 7 - HBObject Transform Components After some demand for components that can ease the generation of buildings with modular zone types, two components to transform HBObjects with all of their properties have been added to the 00 | Honeybee section.  The components allow you to produce copies of zones that are translated or rotated from the original position. 8 - Comfort Maps Supports PET and Integration of CFD Results Thanks to the addition of the  ‘Physiological Equivalent Temperature’  (PET) component by Djordje Spasic in the last stable release, it is now possible to make comfort maps of PET with Honeybee.  PET is particularly helpful for evaluating OUTDOOR comfort with detailed wind fields at a high spatial resolution.  As such, the new PET recipe has also been optimized for integration with CFD results.  The windSpeed_ input can now accept the file path to a .csv file that is organized with 8760 values in each column and a number of columns that correspond to the number of test points.  Components to generate this csv from Butterfly CFD results will be coming in later releases.  Stay tuned! As always let us know your comments and suggestions. Enjoy!Ladybug Analysis Tools Development Team  …
Added by Chris Mackey to Ladybug Tools at 8:39pm on August 11, 2016
Topic: 3D FingerPrint - need to extract ridges and valleys?? Principal Curvatures Estimation
t file** - ply file with just x,y,z locations. I got it from a 3d scanner. Here is how first few lines of file looks like -    ply    format ascii 1.0    comment VCGLIB generated    element vertex 6183    property float x    property float y    property float z    end_header    -32.3271 -43.9859 11.5124    -32.0631 -43.983 11.4945    12.9266 -44.4913 28.2031    13.1701 -44.4918 28.2568    13.4138 -44.4892 28.2531    13.6581 -44.4834 28.1941    13.9012 -44.4851 28.2684    ...     ...      ... In case you need the data - please email me on **nisha.m234@gmail.com**. **Algorithm:** I am trying to find principal curvatures for extracting the ridges and valleys. The steps I am following is: 1. Take a point x 2. Find its k nearest neighbors. I used k from 3 to 20. 3. average the k nearest neighbors => gives (_x, _y, _z) 4. compute covariance matrix 5. Now I take eigen values and eigen vectors of this covariance matrix 6. I get u, v and n here from eigen vectors.    u is a vector corresponding to largest eigen value    v corresponding to 2nd largest    n is 3rd smallest vector corresponding to smallest eigen value 7. Then for transforming the point(x,y,z) I compute matrix T T =  [ui ]    [u ]    [x - _x]  [vi ] =  [v ]  x [y - _y]  [ni ]    [n ]    [z - _z] 8. for each i of the k nearest neighbors:<br>  [ n1 ]   [u1*u1  u1*v1  v1*v1] [ a ]<br>  [ n2 ] = [u2*u2  u2*v2  v2*v2] [ b ] <br>  [... ]   [ ...    ...    ... ] [ c ] <br>  [ nk ]   [uk*uk  uk*vk  vk*vk]<br>  Solve this for a, b and c with least squares 9. this equations will give me a,b,c 10. now I compute eigen values of matrix     [a b      b a ] 11. This will give me 2 eigen values. one is Kmin and another Kmax. **My Problem:** The output is no where close to finding the correct Ridges and Valleys. I am totally Stuck and frustrated. I am not sure where exactly I am getting it wrong. I think the normal's are not computed correctly. But I am not sure. I am very new to graphics programming and so this maths, normals, shaders go way above my head. Any help will be appreciated. **PLEASE PLEASE HELP!!** **Resources:** I am using Visual Studio 2010 + Eigen Library + ANN Library. **Other Options used** I tried using MeshLab. I used ball pivoting triangles remeshing in MeshLab and then applied the polkadot3d shader. If correctly identifies the ridges and valleys. But I am not able to  code it. **My Function:** //the function outputs to ply file        void getEigen()        {        int nPts; // actual number of data points        ANNpointArray dataPts; // data points        ANNpoint queryPt; // query point        ANNidxArray nnIdx;// near neighbor indices        ANNdistArray dists; // near neighbor distances        ANNkd_tree* kdTree; // search structure        //for k = 25 and esp = 2, seems to got few ridges        queryPt = annAllocPt(dim);                                      // allocate query point        dataPts = annAllocPts(maxPts, dim);                     // allocate data points        nnIdx = new ANNidx[k];                                          // allocate near neigh indices        dists = new ANNdist[k];                                         // allocate near neighbor dists        nPts = 0;                                                                       // read data points        ifstream dataStream;        dataStream.open(inputFile, ios::in);// open data file        dataIn = &dataStream;        ifstream queryStream;        queryStream.open("input/query. pts", ios::in);// open data file        queryIn = &queryStream;        while (nPts < maxPts && readPt(*dataIn, dataPts[nPts])) nPts++;        kdTree = new ANNkd_tree(                                        // build search structure                                        dataPts,                                        // the data points                                        nPts,                                           // number of points                                        dim);                                           // dimension of space        while (readPt(*queryIn, queryPt))                       // read query points        {                kdTree->annkSearch(                                             // search                                queryPt,                                                // query point                                k,                                                              // number of near neighbors                                nnIdx,                                                  // nearest neighbors (returned)                                dists,                                                  // distance (returned)                                eps);                                                   // error bound                double x = queryPt[0];                double y = queryPt[1];                double z = queryPt[2];                double _x = 0.0;                double _y = 0.0;                double _z = 0.0;                #pragma region Compute covariance matrix                for (int i = 0; i < k; i++)                {                        _x += dataPts[nnIdx[i]][0];                        _y += dataPts[nnIdx[i]][1];                        _z += dataPts[nnIdx[i]][2];                }                _x = _x/k; _y = _y/k; _z = _z/k;                double A[3][3] = {0,0,0,0,0,0,0,0,0};                for (int i = 0; i < k; i++)                {                        double X = dataPts[nnIdx[i]][0];                        double Y = dataPts[nnIdx[i]][1];                        double Z = dataPts[nnIdx[i]][2];                        A[0][0] += (X-_x) * (X-_x);                        A[0][1] += (X-_x) * (Y-_y);                        A[0][2] += (X-_x) * (Z-_z);                        A[1][0] += (Y-_y) * (X-_x);                        A[1][1] += (Y-_y) * (Y-_y);                        A[1][2] += (Y-_y) * (Z-_z);                        A[2][0] += (Z-_z) * (X-_x);                        A[2][1] += (Z-_z) * (Y-_y);                        A[2][2] += (Z-_z) * (Z-_z);                }                MatrixXd C(3,3);                C <<A[0][0]/k, A[0][1]/k, A[0][2]/k,                        A[1][0]/k, A[1][1]/k, A[1][2]/k,                        A[2][0]/k, A[2][1]/k, A[2][2]/k;                #pragma endregion                EigenSolver<MatrixXd> es(C);                MatrixXd Eval = es.eigenvalues().real().asDiagonal();                MatrixXd Evec = es.eigenvectors().real();                MatrixXd u,v,n;                double a = Eval.row(0).col(0).value();                double b = Eval.row(1).col(1).value();                double c = Eval.row(2).col(2).value();                #pragma region SET U V N                if(a>b && a>c)                {                        u = Evec.row(0);                        if(b>c)                        { v = Eval.row(1); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(1);}                }                else                if(b>a && b>c)                {                        u = Evec.row(1);                        if(a>c)                        { v = Eval.row(0); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(0);}                }                else                {                        u = Eval.row(2);                        if(a>b)                        { v = Eval.row(0); n = Eval.row(1);}                        else                        { v = Eval.row(1); n = Eval.row(0);}                }                #pragma endregion                MatrixXd O(3,3);                O <<u,                        v,                        n;                MatrixXd UV(k,3);                VectorXd N(k,1);                for( int i=0; i<k; i++)                {                        double x = dataPts[nnIdx[i]][0];;                        double y = dataPts[nnIdx[i]][1];;                        double z = dataPts[nnIdx[i]][2];;                        MatrixXd X(3,1);                        X << x-_x,                                 y-_y,                                 z-_z;                        MatrixXd T = O * X;                        double ui = T.row(0).col(0).value();                        double vi = T.row(1).col(0).value();                        double ni = T.row(2).col(0).value();                        UV.row(i) << ui * ui, ui * vi, vi * vi;                        N.row(i) << ni;                }                Vector3d S = UV.colPivHouseholderQr().solve(N);                MatrixXd II(2,2);                II << S.row(0).value(), S.row(1).value(),                          S.row(1).value(), S.row(2).value();                EigenSolver<MatrixXd> es2(II);                MatrixXd Eval2 = es2.eigenvalues().real().asDiagonal();                MatrixXd Evec2 = es2.eigenvectors().real();                double kmin, kmax;                if(Eval2.row(0).col(0).value() < Eval2.row(1).col(1).value())                {                        kmin = Eval2.row(0).col(0).value();                        kmax = Eval2.row(1).col(1).value();                }                else                {                        kmax = Eval2.row(0).col(0).value();                        kmin = Eval2.row(1).col(1).value();                }                double thresh = 0.0020078;                if (kmin < thresh && kmax > thresh )                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 0 << " " << 0                                        << endl;                else                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 255 << " " << 255                                        << endl;        }        delete [] nnIdx;    delete [] dists;    delete kdTree;        annClose(); } Thanks, NISHA…
Added by Nisha M at 10:30am on June 20, 2011
Event: WORKSHOP D-O-F
ion y fabricación en un mismo proceso. Para este taller se han seleccionado un conjunto de técnicas y estrategias para resolver problemas que hoy se presentan en el diseño y fabricación digital de formas complejas y euclidianas. Bajo dos entornos de trabajo, entre técnicas interactivas y soluciones algorítmicas, se examinan conceptos y casos de estudio que le permitirán al participante decidir como y en que momento estas tecnologías pueden ser utilizadas como aliadas en los procesos de diseño y fabricación. Tomando como plataforma básica Rhino, se explora y optimiza el diseño y fabricación de topologías complejas bajo los entornos de Grasshopper, RhinoNest y RhinoCam. En el mes de Febrero de 2010 (23 al 26 de febrero) se realizará el Workshop D.O.F Diseño-Optimizacion-Fabricacion en McNeel Argentina, Está abierto para todas las personas y al participar obtendrás una licencia de Rhino 4.0. Para hacer el workshop se requiere un conocimiento basico de Rhino 3.0 o 4.0 Contenidos: 1. Modelado Avanzado y sus Tecnicas. Aplanado y Desarrollo de Superficies.Anidado y distribución Nesting. 2. Introducción al Diseño Paramétrico.Definiciones Avanzadas de Grasshopper,posibilidades y limitaciones. Ajustes de escala para impresión y corte. 3. Introducción a la Manufactura en CNC - RhinoCAM 2.0. Visita al laboratorio CAM. 4. Guía Paso a Paso para la realización de un Renderizado usando Brazil 2.0. Presentación DIGITAL de proyectos. El workshop tiene una duracion de 32 hrs. (4 dias x 8 horas por dia, horario 9 a 13 hrs y 15 a 19hrs) Docentes Andres Gonzalez Posada - McNeel Miami. - Grasshopper - RhinoCAM - RhinoNest Facundo Miri - McNeel Argentina - Brazil for Rhino. Se dictara en McNeel Argentina Ciudad de la paz 2719 3A. - Belgrano - Capital Federal. Costo del Curso U$S250+IVA Curso D-O-F SIN entrega de licencia de Rhino 4 U$S350+IVA Curso D-O-F con entrega de licencia de RHino 4 Educativa (solo para docentes y estudiantes).- Precio de la licencia sola U$S195 U$S995+IVA Curso D-O-F con entrega de licencia de Rhino 4 Comercial. (profesionales y empresas) - Precio de la licencia sola U$S995 Contactos: Facundo Miri Facundo Miri (54-011) 4547-3458 facundo@mcneel.com McNeel Argentina Robert McNeel & Associates McNeel Seattle - Miami - Buenos Aires Ciudad de la Paz 2719 3A www.rhino3d.TV - www.rhinofablab.com Las personas interesadas pueden llamar al 4547-3458 o enviar mail a facundo@mcneel.com Quienes esten fuera de la ciudad podran hacer un deposito bancario (solicitar datos de la cuenta por mail) y enviar por mail el comprobante de deposito con siguientes datos: Nombres completos - DNI - Fecha de Nacimiento - Teléfono fijo - Celular - Correo Electrónico. Muchas Gracias You can find the prices at: http://www.rhino3d.com/sales/order-la.htm just click on the "Commercial" o "Student" tab.…
Added by Facundo Miri at 1:10pm on December 10, 2009
Comment on: Topic 'Pain Points in Grasshopper'
r." I'm sorry to hear that, I take the interface and ease-of-use rather seriously so this sounds like a fundamental failure on my part. On the other hand, Grasshopper isn't supposed to be on a par with most other 3D programs. It is emphatically not meant for manual/direct modelling. If you would normally tackle a problem by drawing geometry by hand, Grasshopper is not (and should never be advertised as) a good alternative."What in other programs is a dialog box, is 8 or 10 components strung together in grasshopper. The wisdom for this I often hear among the grasshopper community is that this allows for parametric design."Grasshopper ships with about 1000 components (rounded to the nearest power of ten). I'm adding more all the time, either because new functionality has been exposed in the Rhino SDK or because a certain component makes a lot of sense to a lot of people. Adding pre-canned components that do the same as '8 or 10 components strung together' for the heck of it will balloon the total number of components everyone has to deal with. If you find yourself using the same 8 to 10 components together all the time, then please mention it on this forum. A lot of the currently existing components have been added because someone asked for it."[...] has a far cleaner and more intuitive interface. So does SolidWorks, Inventor, CATIA, NX, and a bunch of others."Again, GH was not designed to be an alternative to these sort of modellers. I don't like referring to GH as 'parameteric' as that term has been co-opted by relational modellers. I prefer to use 'algorithmic' instead. The idea behind parameteric seems to be that one models by hand, but every click exists within a context, and when the context changes the software figures out where to move the click to. The idea behind algorithmic is that you don't model by hand.This is not to say there is no value in the parametric approach. Obviously it is a winning strategy and many people love to use it. We have considered adding some features to GH that would make manual modelling less of a chore and we would still very much like to do so. However this is such a large chunk of work that we have to be very careful about investing the time. Before I start down this road I want to make sure that the choice I'm making is not 'lame-ass algorithmic modeller with some lame-ass parametrics tacked on' vs. 'kick-ass algorithmic modeller with no parametrics tacked on'. Visual Programming.I'm not exactly sure I understand your grievance here, but I suspect I agree. The visual part is front and centre at the moment and it should remain there. However we need to improve upon it and at the same time give programmers more tools to achieve what they want. Context sensitivity."There is no reason a program in 2014 should allow me to make decisions that will not work. For example, if a component input is in all cases incompatible with another component's output, I shouldn't be able to connect them."Unfortunately it's not as simple as that. Whether or not a conversion between two data types makes sense is often dependent on the actual values. If you plug a list of curves into a Line component, none of them may be convertible. Should I therefore not allow this connection to be made? What if there is a single curve that could be converted to a line? What if you want to make the connection now, but only later plan to add some convertible curves to the data? What you made the connection back when it was valid, but now it's no longer valid, wouldn't it be weird if there was a connection you couldn't make again?I've started work on GH2 and one of the first things I'm writing now is the new data-conversion logic. The goal this time around is to not just try and convert type A into type B, but include information about what sort of conversion was needed (straightforward, exotic, far-fetched. etc.) and information regarding why that type was assigned.You are right that under some conditions, we can be sure that a conversion will always fail. For example connecting a Boolean output with a Curve input. But even there my preferred solution is to tell people why that doesn't make sense rather than not allowing it in the first place. Sliders."I think they should be optional."They are optional."The “N” should turn into the number if set."What if you assign more than one integer? I think I'd rather see a component with inputs 'N', 'P' and 'X' rather than '5', '8' and '35.7', but I concede that is a personal preference."But if I plug it into something that'll only accept a 1, a  2, or a 3, that slider should self set accordingly."Agreed. Components."Give components a little “+” or a drawer on the bottom or something that by clicking, opens the component into something akin to a dialog box. This should give access to all of the variables in the component. I shouldn't have to r-click on each thing on a component to do all of the settings."I was thinking of just zooming in on a component would eventually provide easier ways to access settings and data."Could some of these items disappear if they are contextually inappropriate or gray out if they're unlikely?"It's almost impossible for me to know whether these things are 'unlikely' in any given situation. There are probably some cases where a suggestion along the lines of "Hey, this component is about to run 40,524 times. It seems like it would make sense to Graft the 'P' input." would be useful. Integration."Why isn't it just live geometry?"This is an unfortunate side-effect of the way the Rhino SDK was designed. Pumping all my geometry through the Rhino document would severely impact performance and memory usage. It also complicates the matter to an almost impossible degree as any command and plugin running in Rhino now has access to 'my' geometry."Maybe add more Rhino functionality to GH. GH has no 3D offset."That's the plan moving forward. A lot of algorithms in Rhino (Make2D, FilletEdge, Shelling, BlendSrf, the list goes on) are not available as part of the public SDK. The Rhino development team is going to try and rectify this for Rhino6 and beyond. As soon as these functions become available I'll start adding them to GH (provided they make sense of course).On the whole I agree that integration needs a lot of work, and it's work that has to happen on both sides of the isle. Documentation.Absolutely. Development for GH1 has slowed because I'm now working on GH2. We decided that GH1 is 'feature complete', basically to avoid feature creep. GH2 is a ground-up rewrite so it will take a long time until something is ready for testing. During this time, minor additions and of course bug fixes will be available for GH1, but on a much lower frequency.Documentation is woefully inadequate at present. The primer is being updated (and the new version looks great), but for GH2 we're planning a completely new help system. People have been hired to provide the content. With a bit of luck and a lot of work this will be one of the main selling points of GH2. 2D-ness."I know you'll disagree completely, but I'm sticking to this. How else could an omission like offsetsurf happen?"I don't fully disagree. A lot of geometry is either flat or happens inside surfaces. The reason there's no shelling (I'm assuming that's what you meant, there are two Offset Surface components in GH) is because (a) it's a very new feature in Rhino and doesn't work too well yet and (b) as a result of that isn't available to plugins. Organisation.Agreed. We need to come up with better ways to organise, document, version, share and simplify GH files. GH1 UI is ok for small projects (<100 components) but can't handle more complexity. Don't get me wrong, I appreciate the feedback, I really do, but I want to be honest and open about my own plans and where they might conflict with your wishes. Grasshopper is being used far beyond the boundaries of what we expected and it's clear that there are major shortcomings that must be addressed before too long. We didn't get it right with the first version, I don't expect we'll get it completely right with the second version but if we can improve upon the -say- five biggest drawbacks (performance, documentation, organisation, plugin management and no mac version) I'll be a happy puppy. -- David Rutten david@mcneel.com…
Added by David Rutten at 2:11am on August 2, 2014
Topic: What are the icons on a component's input/output parameter?
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. …
Added by Danny Boyes at 11:41am on March 10, 2014
Comment on: Topic 'Point Deform that can move brep's control Points'
lass BrepDeform Inherits GH_Component Public Reslist As New List(Of String) Public Sub New() MyBase.New("BrepDeform", "Deform", _ "移动物件的控制点" & vbCrLf & "(Move the control Point to change a object)", "SEG", "Modify") End Sub Public Overrides ReadOnly Property ComponentGuid As System.Guid Get Return New Guid("8226e0ea-ed6b-47c2-8a24-244f044152d8") End Get End Property Protected Overrides ReadOnly Property Internal_Icon_24x24() As System.Drawing.Bitmap Get Return My.Resources.SEG_BrepDeform End Get End Property Protected Overrides Sub RegisterInputParams(ByVal pManager As GH_Component.GH_InputParamManager) ' pManager.AddTextParameter("Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) 'Dim guidParam As New Param_Guid pManager.AddParameter(New Param_Guid, "Guid", "Id", "将要被替换的犀牛物件" & vbCrLf & "(RhinoObjects that will be replaced)", GH_ParamAccess.item) pManager.AddPointParameter("ControlPoint3d", "C", "控制点的位置" & vbCrLf & "(Control Point's location)", GH_ParamAccess.item) pManager.AddPointParameter("NewPoint3d", "P", "新控制点的位置" & vbCrLf & "(New Control Point's location)", GH_ParamAccess.item) pManager.AddNumberParameter("Tolerace", "T", "输入点与物件实际控制点对比的精度" & vbCrLf & "(Tolerace for the Control Point match)", GH_ParamAccess.item, 0.1) pManager.AddBooleanParameter("BlMove", "M", "如果是True则进行移动" & vbCrLf & "(If true Perform the Move)", GH_ParamAccess.item, False) End Sub Protected Overrides Sub RegisterOutputParams(ByVal pManager As Kernel.GH_Component.GH_OutputParamManager) pManager.AddTextParameter("Result", "RG", "结果列表" & vbCrLf & "(Result)", GH_ParamAccess.list) End Sub Public Overrides ReadOnly Property Exposure As GH_Exposure Get Return GH_Exposure.primary End Get End Property Protected Overrides Sub SolveInstance(ByVal DA As Kernel.IGH_DataAccess) If Banner.astrict.showmessage Then Return Dim Ids As Guid = Guid.Empty 'Dim Ids As String = String.Empty Dim tpt As Point3d = Point3d.Unset, opt As Point3d = Point3d.Unset Dim tolar As Double = 0.1 Dim blMove As Boolean = False If Not DA.GetData(0, Ids) Then Return If Not DA.GetData(1, opt) Then Return If Not DA.GetData(2, tpt) Then Return If Not DA.GetData(3, tolar) Then Return If Not DA.GetData(4, blMove) Then Return If Not blMove Then GoTo line1 Reslist.Add(Now & "_未替换!(Replace failed!)") Else Reslist.Clear() ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = False End If ' rt.AddRange(docobjlist.Select(Function(geoobj As RhinoObject) GH_Convert.ObjRefToGeometry(New ObjRef(geoobj.Id)))) 'Private Checked(5) As Boolean, Namestr() As String = {"Point", "Curve", "Brep", "Mesh", "TextDot", "TextEntity"} Try Dim rh As RhinoDoc = Rhino.RhinoDoc.ActiveDoc Dim rhobj As RhinoObject = rh.Objects.Find(Ids) ' Dim rhobj As RhinoObject = rh.Objects.Find(New Guid(Ids)) Dim bobj As BrepObject = CType(rhobj, BrepObject) RhinoApp.RunScript("Cancel", False) RhinoApp.RunScript("Cancel", False) bobj.Select(True) RhinoApp.RunScript("_SolidPtOn", False) Dim gobjs As GripObject() = bobj.GetGrips ' rh.Views.RedrawEnabled = False For Each grpobj As GripObject In gobjs If grpobj.CurrentLocation.DistanceTo(opt) < tolar Then grpobj.Select(True) Dim CurrentPln As Plane = RhinoDoc.ActiveDoc.Views.ActiveView.ActiveViewport.ConstructionPlane Dim tropt As New Point3d(opt), trtpt As New Point3d(tpt) tropt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln)) trtpt.Transform(Transform.PlaneToPlane(Plane.WorldXY, CurrentPln)) Dim movestr As String = "_move " + String.Format("{0},{1},{2} ", tropt.X, tropt.Y, tropt.Z) + String.Format("{0},{1},{2} _Cancel _Cancel", trtpt.X, trtpt.Y, trtpt.Z) RhinoApp.RunScript(movestr, True) grpobj.Select(False) End If Next 'RhinoApp.RunScript("Cancel", False) 'RhinoApp.RunScript("Cancel", False) '' rh.Views.RedrawEnabled = True Reslist.Add(Now & "_替换成功!(Replace Success!)") Catch ex As Exception Reslist.Add(Now & "_替换失败!(Replace failed!)" & vbCrLf & ex.Message) End Try ' Grasshopper.Instances.ActiveCanvas.ModifiersEnabled = True line1: DA.SetDataList(0, Reslist) End Sub 'Private Sub Testt_PingDocument(sender As IGH_DocumentObject, e As GH_PingDocumentEventArgs) Handles Me.PingDocument ' Dim Mbool = Aggregate bcbool In Checked Into cb = Any(bcbool) ' If Not Mbool Then ' Checked(0) = True ' Message = Namestr(0) ' Order = 0 ' End If 'End Sub End Class The picture below shows the two question. Question One I must use data dam, or the component can't batch deal the brep. I don't know why, I have You can give me a solution to make it working  normal not using the data dam Question Two  I can not uset the Button component, If I use it, the gh canvas will die with some mouse event--. I have see this problem before in this forum,but there is no solution and explain. I want to know why and How to solve it.  I don't know if I have made my question clear,if not give a message. Thank you! Thank you all. The gh test file and 3dm test file in the upload files. …
Added by huaxiamengqing at 2:02am on June 8, 2015
Comment on: Topic 'Pain Points in Grasshopper'
e a fundamental failure on my part. On the other hand, Grasshopper isn't supposed to be on a par with most other 3D programs. It is emphatically not meant for manual/direct modelling. If you would normally tackle a problem by drawing geometry by hand, Grasshopper is not (and should never be advertised as) a good alternative. I get that. That’s why that 3D shape I’m trying to apply the voronoi to was done in NX. I do wonder where the GUI metaphor GH uses comes from. It reminds me of LabVIEW. "What in other programs is a dialog box, is 8 or 10 components strung together in grasshopper. The wisdom for this I often hear among the grasshopper community is that this allows for parametric design." Grasshopper ships with about 1000 components (rounded to the nearest power of ten). I'm adding more all the time, either because new functionality has been exposed in the Rhino SDK or because a certain component makes a lot of sense to a lot of people. Adding pre-canned components that do the same as '8 or 10 components strung together' for the heck of it will balloon the total number of components everyone has to deal with. If you find yourself using the same 8 to 10 components together all the time, then please mention it on this forum. A lot of the currently existing components have been added because someone asked for it. It’s not the primary components that catalyzed this thought but rather the secondary components. I was toying with a component today (twist from jackalope) that made use of three toggle components. The things they controlled are checkboxes in other apps. Take a look at this jpg. Ignore differences; I did 'em quickly. GH required 19 components to do what SW did with 4 commands. Note the difference in screen real estate. As an aside, I really hate SolidWorks (SW). But going forward, I’ll use it as an example because it’s what most people are familiar with.   "[...] has a far cleaner and more intuitive interface. So does SolidWorks, Inventor, CATIA, NX, and a bunch of others." Again, GH was not designed to be an alternative to these sort of modellers. I don't like referring to GH as 'parameteric' as that term has been co-opted by relational modellers. I prefer to use 'algorithmic' instead. The idea behind parameteric seems to be that one models by hand, but every click exists within a context, and when the context changes the software figures out where to move the click to. The idea behind algorithmic is that you don't model by hand. I agree, and disagree. I believe parametric applies equally to GH AND SW, NX, and so forth, while algorithmic is unique to GH (and GC and Dynamo I think). Thus I understand why you prefer the term. I too tend to not like referring to GH as a parametric modeler for the same reason. But I think it oversimplifies it to say parametric modelers move the clicks. SW tracks clicks the same way GH does; GH holds that information in geometry components while SW holds it in a feature in the feature tree. In both GH and SW edits to the base geometry will drive a recalculation, but more commonly, it’s an edit to input data, beit equations or just plain numbers, that drive a recalculation. I understand the difference in these programs. What brought me to GH is that it can create a visual dialog that standard modelers can’t. But as I've grown more comfortable with it I’ve come to realize that the GUI of GH and the GUI of other parametric modelers, while looking completely different, are surprisingly interchangeable. Do not misconstrue that I’m suggesting that GH should replace it’s GUI with SW’s. I’m not. I refrain from suggesting anything specific. I only suggest that you allow yourself to think radically. This is not to say there is no value in the parametric approach. Obviously it is a winning strategy and many people love to use it. We have considered adding some features to GH that would make manual modelling less of a chore and we would still very much like to do so. However this is such a large chunk of work that we have to be very careful about investing the time. Before I start down this road I want to make sure that the choice I'm making is not 'lame-ass algorithmic modeller with some lame-ass parametrics tacked on' vs. 'kick-ass algorithmic modeller with no parametrics tacked on'. Given a choice, I'd pick kick-ass algorithmic modeller with no parametrics tacked on. 2. Visual Programming. I'm not exactly sure I understand your grievance here, but I suspect I agree. The visual part is front and centre at the moment and it should remain there. However we need to improve upon it and at the same time give programmers more tools to achieve what they want. I'll admit, this is a bit tough to explain. As I've re-read my own comment, I think it was partly a precursor to the context sensitivity point and touched upon other stated points. This now touches upon my own ignorance about GH’s target market. Are you moving toward a highly specialized tool for programmers and/or mathematicians, or is the intent to create a tool that most designers can master? If it’s the former, rock on. You’re doing great. If it’s the latter, I’m one of the more technically sophisticated designers I know and I’m lost most of the time when using GH. GH allows the same freedom as a command line editor. You can do whatever you like, and it’ll work or not. And you won’t know why it works or doesn't until you start becoming a bit of an expert and can actually decipher the gibberish in a panel component. I often feel GH has the ease of use of DOS with a badass video card in front. Please indulge my bit of storytelling. Early 3D modelers, CATIA, Unigraphics, and Pro-Engineer, were unbelievably difficult to use. Yet no one ever complained. The pain of entry was immense. But once you made it past the pain threshold, the salary you could command was very well worth it. And the fewer the people who knew how to use it, the more money you could demand. So in a sense, their lack of usability was a desirable feature among those who’d figured it out. Then SolidWorks came along. It could only do a fraction of what the others did, but it was a fraction of the cost, it did most of what you needed, and anyone could figure it out. There was even a manual on how to use it. (Craziness!) Within a few short years, the big three all had to change their names (V5, NX, and Wildfire (now Creo)) and change the way they do things. All are now significantly easier to use. I can tell that the amount of development time that’s gone into GH is immense and I believe the functionality is genius. I also believe it’s ease of use could be greatly improved. Having re-read my original comments, I think it sounded a bit snotty. For that I apologize. 3. Context sensitivity. "There is no reason a program in 2014 should allow me to make decisions that will not work. For example, if a component input is in all cases incompatible with another component's output, I shouldn't be able to connect them." Unfortunately it's not as simple as that. Whether or not a conversion between two data types makes sense is often dependent on the actual values. If you plug a list of curves into a Line component, none of them may be convertible. Should I therefore not allow this connection to be made? What if there is a single curve that could be converted to a line? What if you want to make the connection now, but only later plan to add some convertible curves to the data? What you made the connection back when it was valid, but now it's no longer valid, wouldn't it be weird if there was a connection you couldn't make again? I've started work on GH2 and one of the first things I'm writing now is the new data-conversion logic. The goal [...] is to not just try and convert type A into type B, but include information about what sort of conversion was needed (straightforward, exotic, far-fetched. etc.) and information regarding why that type was assigned. You are right that under some conditions, we can be sure that a conversion will always fail. For example connecting a Boolean output with a Curve input. But even there my preferred solution is to tell people why that doesn't make sense rather than not allowing it in the first place. You bring up both interesting points and limits to my understanding of coding. I’ve reached the point in my learning of GH where I’m just getting into figuring out the sets tab (and so far I’m not doing too well). I often find myself wondering “Is all of this manual conditioning of the data really necessary? Doesn’t most software perform this kind of stuff invisibly?” I’d love to be right and see it go away, but I could easily be wrong. I’ve been wrong before. 5. Components. "Give components a little “+” or a drawer on the bottom or something that by clicking, opens the component into something akin to a dialog box. This should give access to all of the variables in the component. I shouldn't have to r-click on each thing on a component to do all of the settings." I was thinking of just zooming in on a component would eventually provide easier ways to access settings and data. I kinda like this. It’s a continuation of what you’re currently doing with things like the panel component. "Could some of these items disappear if they are contextually inappropriate or gray out if they're unlikely?" It's almost impossible for me to know whether these things are 'unlikely' in any given situation. There are probably some cases where a suggestion along the lines of "Hey, this component is about to run 40,524 times. It seems like it would make sense to Graft the 'P' input." would be useful. 6. Integration. "Why isn't it just live geometry?" This is an unfortunate side-effect of the way the Rhino SDK was designed. Pumping all my geometry through the Rhino document would severely impact performance and memory usage. It also complicates the matter to an almost impossible degree as any command and plugin running in Rhino now has access to 'my' geometry. "Maybe add more Rhino functionality to GH. GH has no 3D offset." That's the plan moving forward. A lot of algorithms in Rhino (Make2D, FilletEdge, Shelling, BlendSrf, the list goes on) are not available as part of the public SDK. The Rhino development team is going to try and rectify this for Rhino6 and beyond. As soon as these functions become available I'll start adding them to GH (provided they make sense of course). On the whole I agree that integration needs a lot of work, and it's work that has to happen on both sides of the isle. You work for McNeel yet you seem to speak of them as a separate entity. Is this to say that there are technical reasons GH can only access things through the Rhino SDK? I’d think you would have complete access to all Rhino API’s. I hope it’s not a fiefdom issue, but it happens. 7. Documentation. Absolutely. Development for GH1 has slowed because I'm now working on GH2. We decided that GH1 is 'feature complete', basically to avoid feature creep. GH2 is a ground-up rewrite so it will take a long time until something is ready for testing. During this time, minor additions and of course bug fixes will be available for GH1, but on a much lower frequency. Documentation is woefully inadequate at present. The primer is being updated (and the new version looks great), but for GH2 we're planning a completely new help system. People have been hired to provide the content. With a bit of luck and a lot of work this will be one of the main selling points of GH2.   It begs the question that I have to ask. When is GH1.0 scheduled to launch? And if you need another person to proofread the current draft of new primer. patrick@girgen.com I can’t believe wikipedia has an entry for feature creep. And I can’t believe you included it. It made me giggle. Thanks. 8. 2D-ness. "I know you'll disagree completely, but I'm sticking to this. How else could an omission like offsetsurf happen?" I don't fully disagree. A lot of geometry is either flat or happens inside surfaces. The reason there's no shelling (I'm assuming that's what you meant, there are two Offset Surface components in GH) is because (a) it's a very new feature in Rhino and doesn't work too well yet and (b) as a result of that isn't available to plugins. I believe it’s been helpful for me to have figured this out. I recently completed a GH course at a local Community College and have done a bunch of online tutorials. The first real project I decided to tackle has turned out to be one of the more difficult things to try. It’s the source of the questions I posted. (Thanks for pointing out that they were posted in the wrong spot. I re-posted to the discussions board.) I just can't seem to figure out how to turn the voronoi into legitimate geometry. I've seen this exact question posted a few times, but it’s never been successfully answered. What I'm showing here is far more angular than I’m hoping for. The mesh is too fine for weaverbird to have much of an effect. And I haven't cracked re-meshing. Btw, in product design, meshes are to be avoided like the plague. Embracing them remains difficult. As for offsetsurf, in Rhino, if you do an offsetsurf to a solid body, it executes it on all sides creating another neatly trimmed body thats either larger or smaller than the original. This is how every other app I know of works. GH’s offsetsurf creates a bunch of unjoined faces spaced away from the original brep. A common technique for 3D voronois (Yes, I hit the voronoi overuse easter egg) is to find the center of each cell and scale them by this center. If you think about it, this creates a different distance from the face of the scaled cell to the face of the original cell for every face. As I've mentioned, this project is giving me serious headaches. Don't get me wrong, I appreciate the feedback, I really do, but I want to be honest and open about my own plans and where they might conflict with your wishes. Grasshopper is being used far beyond the boundaries of what we expected and it's clear that there are major shortcomings that must be addressed before too long. We didn't get it right with the first version, I don't expect we'll get it completely right with the second version but if we can improve upon the -say- five biggest drawbacks (performance, documentation, organisation, plugin management and no mac version) I'll be a happy puppy. -- David Rutten   Thank you for taking the time to reply David. Often we feel that posting such things is send it into the empty ether. I’m very glad that this was not the case. And thank you for all of the work you've put into GH. If you found any of my input overly harsh or ill-mannered, I apologise. It was not my intent. I'm generally not the ranting sort. If I hadn't intended to provide possibly useful input, I wouldn't have written.   Cheers Patrick Girgen Ps. Any pointers on how to get a bit further on the above project would be greatly appreciated. …
Added by PGirgen at 3:38am on August 3, 2014
Topic: Ladybug Photovoltaics components released !
nts for Ladybug too. They are based on PVWatts v1 online calculator, supporting crystalline silicon fixed tilt photovoltaics. You can download them from here, or use the Update Ladbybug component instead. If you take the first option, after downloading check if .ghuser files are blocked (right click -> "Properties" and select "Unblock"). You can download the example files from here. Video tutorials will follow in the coming period.   In the very essence these components help you answer the question: "How much energy can my roof, building facade, solar parking... generate if I would populate them with PV panels"? They allow definition of different types of losses (snow, age, shading...) which may affect your PV system: And can find its optimal tilt and orientation: Or analyse its performance, energy value, consumption, emissions... By Djordje Spasic and Jason Sensibaugh, with invaluable support of Dr. Frank Vignola, Dr. Jason M. Keith, Paul Gilman, Chris Mackey, Mostapha Sadeghipour Roudsari, Niraj Palsule, Joseph Cunningham and Christopher Weiss.   Thank you for reading, and hope you will enjoy using the components! EDIT: From march 27 2017, Ladybug Photovoltaics components support thin-film modules as well. References: 1) System losses: PVWatts v5 Manual, Dobos, NREL, 2014   2) Sun postion equations by Michalsky (1988): SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014 edited by Jason Sensibaugh   3) Angle of incidence for fixed arrays: PVWatts Version 1 Technical Reference, Dobos, NREL, 2013   4) Plane-of-Array diffuse irradiance by Perez 1990 algorithm: PVPMC Sandia National Laboratories SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014   5) Sandia PV Array Performance Module Cover: PVWatts Version 1 Technical Reference, Dobos, NREL, 2013   6) Sandia Thermal Model, Module Temperature and Cell Temperature Models: Photovoltaic Array Performance Model, King, Boys, Kratochvill, Sandia National Laboratories, 2004 7) CEC Module Model: Maximum power voltage and Maximum power current from: Exact analytical solutions of the parameters of real solar cells using Lambert W-function, Jain, Kapoor, Solar Energy Materials and Solar Cells, V81 2004, P269–277   8) PVFORM version 3.3 adapted Module and Inverter Models: PVWatts Version 1 Technical Reference, Dobos, NREL, 2013   9) Sunpath diagram shading: Using sun path charts to estimate the effects of shading on PV arrays, Frank Vignola, University of Oregon, 2004 Instruction manual for the Solar Pathfinder, Solar Pathfinder TM, 2008   10) Tilt and orientation factor: Application for Purchased Systems Oregon Department of Energy solmetric.com   11) Photovoltaics performance metrics: Solar PV system performance assessment guideline, Honda, Lechner, Raju, Tolich, Mokri, San Jose state university, 2012 CACHE Modules on Energy in the Curriculum Solar Energy, Keith, Palsule, Mississippi State University Inventory of Carbon & Energy (ICE) Version 2.0, Hammond, Jones, SERT University of Bath, 2011 The Energy Return on Energy Investment (EROI) of Photovoltaics: Methodology and Comparisons with Fossil Fuel Life Cycles, Raugei, Fullana-i-Palmer, Fthenakis, Elsevier Vol 45, Jun 2012 12) Calculating albedo: Metenorm 6 Handbook part II: Theory, Meteotest 2007   13) Magnetic declination: Geomag 0.9.2015, Christopher Weiss…
Added by djordje to Ladybug Tools at 2:04pm on June 15, 2015
Blog Post: Aether – simple speedy spatial fields for Grasshopper

Added by Daniel Piker at 7:25am on December 16, 2014
  • 1
  • ...
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

About

Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign In

Translate

Search

Photos

  • Spiral Stair

    Spiral Stair

    by Parametric House 0 Comments 0 Likes

  • Millipede Kangaroo

    Millipede Kangaroo

    by Parametric House 0 Comments 0 Likes

  • Inflate Mesh

    Inflate Mesh

    by Parametric House 0 Comments 0 Likes

  • cover

    cover

    by Parametric House 0 Comments 0 Likes

  • Parametric Structure

    Parametric Structure

    by Parametric House 0 Comments 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • Spiral Stair

    Spiral Stair

    Added by Parametric House 0 Comments 0 Likes

  • Millipede Kangaroo

    Millipede Kangaroo

    Added by Parametric House 0 Comments 0 Likes

  • Inflate Mesh

    Inflate Mesh

    Added by Parametric House 0 Comments 0 Likes

  • Voronoi Roof

    Voronoi Roof

    Added by Parametric House 0 Comments 0 Likes

  • Parametric Structure

    Parametric Structure

    Added by Parametric House 0 Comments 0 Likes

  • Tensile Column

    Tensile Column

    Added by Parametric House 0 Comments 0 Likes

  • Add Videos
  • View All
  • Facebook

© 2025   Created by Scott Davidson.   Powered by Website builder | Create website | Ning.com

Badges  |  Report an Issue  |  Terms of Service