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 - 11选5开奖结果爱彩乐-『1TBH·COM』11选5前三直最大遗漏多少期--2023年3月19日5时52分52秒.H5c2a3.t93brrchr

Comment on: Topic 'Butterfly Error - Cannot satisfy memory request'
d not work. The block mesh would stop halfway and my snappyhexmesh would not work as well. Block Mesh stopping halfway: SET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envSET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envButterfly is running blockMesh. PID: None/*---------------------------------------------------------------------------*\| ========= | || \\ / F ield | OpenFOAM: The Open Source CFD Toolbox || \\ / O peration | Version: v1612+ || \\ / A nd | Web: www.OpenFOAM.com || \\/ M anipulation | |\*---------------------------------------------------------------------------*/Build : v1612+Exec : blockMeshDate : May 23 2017Time : 06:45:55Host : "default"PID : 1412Case : /home/ofuser/workingDir/butterfly/outdoor_airflownProcs : 1sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //Create time Creating block mesh from "/home/ofuser/workingDir/butterfly/outdoor_airflow/system/blockMeshDict"Creating block edgesNo non-planar block faces definedCreating topology blocksCreating topology patches Creating block mesh topology Check topology Basic statistics Number of internal faces : 0 Number of boundary faces : 6 Number of defined boundary faces : 6 Number of undefined boundary faces : 0 Checking patch -> block consistency Creating block offsetsCreating merge list . Creating polyMesh from blockMeshCreating patchesCreating cellsCreating points with scale 1 Block 0 cell size : i : 4.992714 .. 4.992714 j : 4.989322 .. 29.93593 k : 2.137405 .. 5 Snappyhexmesh error: SnappyHexMeshDict.snap is changed from "true" to "false".saving the new snappyHexMeshDict.SET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envSET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envSET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envSET DOCKER_TLS_VERIFY=1&SET DOCKER_HOST=tcp://192.168.99.100:2376&SET DOCKER_CERT_PATH=C:\Users\akiwya\.docker\machine\machines\default&SET DOCKER_MACHINE_NAME=default&docker exec -i 4c9bb2f7444b pgrep snappyHexMeshdocker-machine envButterfly is running snappyHexMesh. PID: None/*---------------------------------------------------------------------------*\| ========= | || \\ / F ield | OpenFOAM: The Open Source CFD Toolbox || \\ / O peration | Version: v1612+ || \\ / A nd | Web: www.OpenFOAM.com || \\/ M anipulation | |\*---------------------------------------------------------------------------*/Build : v1612+Exec : snappyHexMeshDate : May 23 2017Time : 06:47:44Host : "default"PID : 1643Case : /home/ofuser/workingDir/butterfly/outdoor_airflownProcs : 1sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //Create time Create mesh for time = 0--> FOAM FATAL ERROR: Cannot find file "points" in directory "polyMesh" in times 0 down to constant From function Foam::word Foam::Time::findInstance(const Foam::fileName&, const Foam::word&, Foam::IOobject::readOption, const Foam::word&) const in file db/Time/findInstance.C at line 202. FOAM exitingRuntime error (PythonException): --> snappyHexMesh Failed!--> FOAM FATAL ERROR: Cannot find file "points" in directory "polyMesh" in times 0 down to constant From function Foam::word Foam::Time::findInstance(const Foam::fileName&, const Foam::word&, Foam::IOobject::readOption, const Foam::word&) const in file db/Time/findInstance.C at line 202. FOAM exitingTraceback: line 110, in script Heres an updated file…
Added by Annie Wu to Ladybug Tools at 12:52am on May 23, 2017
Topic: how to store data in a custom plugin
rsistant data , as the inputs and outputs of the component should be build by the data stored in the object. thanxs in advance Michael here is the code of the object....  public class Proxy    {       public List<string> _name_in;       public List<string> _name_out;       public List<SerializableType> _type_in;       public List<SerializableType> _type_out;       public List<GH_ParamAccess> _access_in;       public string _path;       public string _script;       public bool _internalized;       public bool _working;       public Proxy(List<string> name_in, List<string> name_out, List<SerializableType> type_in, List<SerializableType> type_out, List<GH_ParamAccess> access_in, string path, string script, bool internalized)         {            _name_in = name_in;            _name_out = name_out;            _type_in = type_in;            _type_out = type_out;            _access_in = access_in;            _path = path;            _script = script;            _internalized = internalized;            _working = true;        }       public Proxy()       {           _name_in = new List<string>();           _name_out = new List<string>();           _type_in = new List<SerializableType>();           _type_out = new List<SerializableType>();           _access_in = new List<GH_ParamAccess>();           _path = get_path_of_plugin();           _script = "";           _internalized = false;           _working = false;       }       public static string get_path_of_plugin()       {           string temp_cut;           string string_path = System.Reflection.Assembly.GetExecutingAssembly().Location;           string string_name = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;           int temp_name_int = string_name.Length + 5;           int temp_path_int = string_path.Length;           temp_cut = string_path.Remove(temp_path_int - temp_name_int);           return temp_cut;       }       public static T ObjectDeserializer<T>(string XmlInput)       {           System.Xml.XmlDocument XmlDoc = new System.Xml.XmlDocument();           XmlDoc.Load(new System.IO.StringReader(XmlInput));           System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(T));           T out_ob = (T)ser.Deserialize(new System.IO.StringReader(XmlInput));           return out_ob;       }       public static string ObjectSerializer<T>(T SerializedObject)       {           System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(T));           System.Text.StringBuilder builder = new System.Text.StringBuilder();           XmlWriter xmllol = XmlWriter.Create(builder);           ser.Serialize(xmllol, SerializedObject);           return builder.ToString();       }    }    public class SerializableType    {        private Type type;        // when serializing, store as a string       // [DataMember]        public string TypeString        {            get            {                if (type == null)                    return null;                return type.FullName;            }            set            {                if (value == null)                    type = null;                else                {                    type = Type.GetType(value);                }            }        }        public Type return_Type() { return type; }        // constructors        public SerializableType()        {            type = null;        }        public SerializableType(Type t)        {            type = t;        }        // allow SerializableType to implicitly be converted to and from System.Type        static public implicit operator Type(SerializableType stype)        {            return stype.type;        }        static public implicit operator SerializableType(Type t)        {            return new SerializableType(t);        }        // overload the == and != operators        public static bool operator ==(SerializableType a, SerializableType b)        {            // If both are null, or both are same instance, return true.            if (System.Object.ReferenceEquals(a, b))            {                return true;            }            // If one is null, but not both, return false.            if (((object)a == null) || ((object)b == null))            {                return false;            }            // Return true if the fields match:            return a.type == b.type;        }        public static bool operator !=(SerializableType a, SerializableType b)        {            return !(a == b);        }        // we don't need to overload operators between SerializableType and System.Type because we already enabled them to implicitly convert        public override int GetHashCode()        {            return type.GetHashCode();        }        // overload the .Equals method        public override bool Equals(System.Object obj)        {            // If parameter is null return false.            if (obj == null)            {                return false;            }            // If parameter cannot be cast to SerializableType return false.            SerializableType p = obj as SerializableType;            if ((System.Object)p == null)            {                return false;            }            // Return true if the fields match:            return (type == p.type);        }        public bool Equals(SerializableType p)        {            // If parameter is null return false:            if ((object)p == null)            {                return false;            }            // Return true if the fields match:            return (type == p.type);        }    }    public class GH_Proxy : Grasshopper.Kernel.Types.GH_Goo<Proxy>    {                public override Grasshopper.Kernel.Types.IGH_Goo Duplicate()        {            return this;        }        public override bool IsValid        {            get { return true; }        }        public override string ToString()        {            return Proxy.ObjectSerializer<Proxy>(this.Value);        }        public override string TypeDescription        {            get { return "his is a proxy"; }        }        public override string TypeName        {            get { return "his is a proxy"; }        }    }…
Added by michael sprinzl at 1:28am on June 28, 2012
Topic: ZBrush Is Now A Grasshopper Plugin
ome work to create a ZScript macro for custom routines, but you can record those in ZBrush and then merely need to edit them into my script, inline, as bulk multiple-lines you just paste in, no problem as long as you strip the ZBrush button definition at the beginning. ZBrush has a very high initial learning curve because of its non-standard interface. However, it has the world's most powerful quad remeshing and now mesh Booleans too. I needed a replacement for slow and especially non-robust marching cubes (Cocoon/Monolith/Dodo/Aether etc. on Grasshopper) that tended to bog down or blow up. IntraLattice was a step in a good direction but it can't merge fattened lines that merely cross each other with no breaks or that physically overlap on purpose to have many curve on in to a hub. But with $800 ZBrush 4R8, the latest version, that I can create English language ZScripts for, I suddenly have, often in the blink of an eye, or at worst a few seconds, right back into Rhino Grasshopper, a perfectly joined, airtight and smoothed mesh blending of upwards of thousands of input mesh pieces that overlap in ways Rhino will never Boolean union. There is no complicated installation of anything since it's all done in Python. The ZBrush program itself pops up while it works, and is then automatically backgrounded to bring you back to Grasshopper. It keeps running though, for fast iterations with no program startup time. This is a general toolkit to expose myriad very advanced features of ZBrush into being just another Grasshopper plug-in like the rest. It works by accepting a Grasshopper mesh and writing it to disk as an OBJ file, then incorporates ZBrush settings for a given command into a text format ZScript file, also written to disk from Python based on Grasshopper inputs, then ZBrush is told to run the script via Windows command line, and the exported OBJ output is read back from disk back into a Rhino Grasshopper mesh, in about a hundred lines of code. Despite a change in mesh definition in Rhinocommon from version 5 to 6, I made it work on both versions. So far this is only one command, the newly improved mesh Boolean union. It gives quad meshes, but they still look healthy when quickly triangulated in Rhino (as seen on top, above). The ZBrush ZRemesher is utterly astounding in ability to transform any mesh into a direction following, error free quad mesh that can be converted to NURBS actually, via T-Splines smooth mode. That will be the next port to Grasshopper. I hope architects pick up on this more orderly manner of patterning surfaces than the alien slime of random point Voronoi. Commercial software has the best code, not open source stuff, so far, so this is serious work to bring world class tools into Grasshopper where we can rapidly prototype computational strategies. Here is a thread with several examples of ZBrush Boolean union remeshing applied to 3D trusses, compared to both IntraLattice and marching cubes: http://www.grasshopper3d.com/forum/topics/custom-unit-cell-bug-in-intralattice-plug-in?commentId=2985220%3AComment%3A1828609 The same strategy of generating script files I used to port OpenFlipper, here, for triangle remeshing, which can now be combined with ZBrush Boolean unions of arbitrary assemblies of mesh units: http://www.grasshopper3d.com/forum/topics/best-uniform-remesher-for-patterning-organic-suraces UPDATE: I revamped the workflow so now components feed raw ZScript into a sequencer. Then only a single ZScript is assembled and sent to ZBrush so Python never gets ahead of ZBrush (!): It is easy to DIY roll your own now: …
Added by Nik Willmore at 6:48am on October 12, 2017
Blog Post: Parametric Urbanism: 15 Basic Parameters In Urban Design

This list is not comprehensive but a starting point for any planning project.

In a successfully designed …

Added by Mr. Gudjon Thor Erlendsson at 7:52am on April 15, 2020
Comment on: Topic 'Refactoring Parametricism'
whole design intent, but this is what Inventor is good at. The way it packages bits of 'scripted' components into 'little models' that can be stored and re-assembled is central to MCAD working. The Inventor model shown is almost 5 years old. We don't model like that any more, however it does offer a good idea of general MCAD modeling approaches. iParts is useful in certain situations, it could've been useful in the above model, its usefulness is often in function of the quantity of variants/configurations. So much is scripted in GH, maybe it should also be possible to script/define/constrain/assist the placement/gluing of the results? ... Starting point: I think we are talking across purposes. AFAIK, the solving sequence of GH's scripted components is fixed. It won't do circular dependencies... without a fight. The inter-component dependencies not 'managed' like constraints solvers do for MCAD apps. Components and assemblies are individual files in MCAD. Placement of these within assemblies in MCAD is a product of matrix transforms and persistent constraints. There is no bi-directional link, the link is unidirectional (downflow only), because of the use of proxies. Consequently, scripting the placement of components is irrelevant in GH, unless you decide that each component needs to be contained in its own separate file. This also brings up the point that generating components and assemblies in MCAD is not as straightforward. In iParts and iAssemblies, each configuration needs to be generated as a "child" (the individual file needs to be created for each child) before those children can be used elsewhere. You notice the dilemma, if you generate 100 parts, and then you realize you only need 20, you've created 80 extra parts which you have no need for, thus generating wasteful data that may cause file management issues later on. GH remains in a transient world, and when you decide to bake geometry (if you need to at all), you can do that in one Rhino file, and save it as the state of the design at that given moment. Very convenient for design, though unacceptable for most non-digital manufacturing methods, which greatly limits Rhino's use for manufacturing unless you combine it with an MCAD app.   One of the reasons why the distributed file approach makes perfect sense in MCAD, is that in industry you deal with a finite set of objects. Generative tools are usually not a requirement. Most mechanical engineers, product engineers and machinists would never have any use for that. The other thing that MCAD apps like Inventor have, is the 'structured' interface that offers up all that setting out information like the coordinate systems, work planes, parameters etc in a concise fashion in the 'history tree'. This will translate into user speed. GH's canvas is a bit more freeform. I suppose the info is all there and linked, so a bit of re-jigging is easy. Also, see how T-Flex can even embed sliders and other parameter input boxes into the model itself. Pretty handy/fast to understand, which also means more speed. True. As long as you keep the browser pane/specification tree organized and easy to query. :) Would love to understand what you did by sketching. I'll start by showing what was done years ago in the Inventor model, and then share with you what I did in GH, but in another post.   Let's use one of the beams as an example:   We can isolate this component for clarity. Notice that I've highlighted the sectional sketch with dimensions, and the point of reference, which is in relation to the CL of the column which the beam bears on. The orientation and location of the beam is already set by underlying geometry.   Here's a perspective view of the same:   The extent of the beam was also driven by reference geometry, 2 planes offset from the beam's XY plane, driven by parameters from another underlying file which serves as a parameter container:   Reference axes and points are present for all other components, here are some of them:   It starts getting cluttered if you see the reference planes as well: Is I mentioned earlier, over time we've found better ways to define and associate geometry, parameters, manage design change, improving the efficiency of parametric models. But this model is a fair representation of a basic modeling approach, and since an Inventor-GH comparison is like comparing apples and oranges anyways, this model can be used to understand the differences and similarities, for those interested.   I haven't even gotten to your latest post yet, I will eventually.…
Added by Santiago Diaz at 10:36am on February 26, 2011
Comment on: Topic 'I need help by building a heat exchanger with special honeycomb-geometry'
u might already noticed. Second great thing is that is quite fast, precise and versatile (for this kind of things); also is way OPEN (meaning you can attach and or interface it with almost anything you can imagine, meaning hardware, and other sw components, etc (like a CNC machine (additive manufacturing toys..) or any sw like C# component)) making a GREAT HUGE difference with almost any other CAD (and CAM sw i must say)  i made a simple fully functional CAM component - highly powerful ! - in a couple of days... also tested an arduino interface (meaning control over almost any elctronic device out there)... in a matter of hours... and saw and can easily think about lots and lots of extremely cool usages of this great tool in almost any area ... So that's why i would suggest - and will do something about for - it (or similar tools) to be teached at first stages of education ! But power comes with responsability. and is far better exploited when your are smart ;) I think people that uses GH will be n-times as good when they don`t forget manufacturing. This includes teachers btw.... Interesting thing to account is that all things that GH is great at (a LOT) means reducing dramatically the time spent to model almost anything... But usually the purpose (unless the objective is just learning or doing some kind of virtual art (both legal stuff btw...;) but guess it might not be your case now and after graduating..)) is to end up by actually building some real 3D stuff... So what Joseph is poining is key... If you have a good teacher.. i guess it should pay more and more attention not just at your gh skills but rather the way in which you use the power, versatility and extra time gh (and additive manufacturing tech) saves,  to think about how to design the stuff focusing on the ultimately relevant stuff... optimisation... So.. I would say that any heat interchanger like the one involved in your thesis, has to deal with fluids.. have to account for some sort of life span (involving cheaper an ideally no maintenance needed along its life...), and of course also critical the costs of manufacturing. so... be the best one... use GH smartly ! ie... account for different profile paths for oil and water.. they're different fluids meaning they have different specific heat, viscosity, blah... and so... they might not even traverse the interchanger at same flow ratio, etc. So... maybe you want to start by reshaping the grid... (parametrically...!) so you can arbitrarily and dynamically modify and get to see interactively in your definition the areas ratio of sections so as to finaly get to set the "ideal" (meainng optimum) relative areas (sections) ratio of oil to water paths... (or whatever other fluids could be !), and the material also... Secondly you might also consider that triangles might not be well suited for the conduit sections because are not the best shape to carry most fluids... (hoses are of circular sections...worst case are kinda rectangular with rounded corners..;) not only because the're easy to manufacture but also because they minimise (optimize) flowing energy losses AND are less prone to (ie salt or debree deposits in the interior) ). so think about rounded shapes, of if you want some regular polygons stuff but 5 or more faces...kinda circular...got it ? I love bees by the way.. and if you happen to need more interchange area (obviously another (and probably the #1 key one) figure you should be displaying interactively in your definition ) you can always add some more extrusion length... third... the twisting stuff is cool... (artistically ;)) but i 100% agree with Joseph is far likely to involve higer costs for manufacturing with no clear benefit on surface maximization... and most probably some other losses in added friction to the flow of fluids (meaning higher costs for pumping, etc...)... fourth... consider the area, (then the volume!) of the "building material"... you should optimise that too ! so this could be another one of your interactive displays... in this case... you not only can see optimisation by reducing the amount of materials to build your interchanger... but you can also notice that if the "building tech" involves the well and common additive manufacturing process of extrusion deposits... that surface area, and that extrusion length, meaning volume and cost of raw material, also mean TIME to manufacture... and i guess you teacher will find good for you to consider and mention that one too... fifth... finally (for now hehe), and globally most important in the short term :)  if the objective of yor teacher is for you just to learn GH and impress him and the rest of the world then, ok, do the twist the swirl and imagine all kind of sea star and or ondulated conduit sections (maybe some recursive forms (fractals...) like snowflakes... or any n-arms (mutant !) starfishes shapes) but make sure you first get to know and validate what it will be the objectives of your evaluator... .. in the near end this is all about passing your thesis while learning GH while having fun.. isn't it ? go for it and best of luck ! ps: for the mid and long term.. some day take a look at linear optimisaton if you already didn't. i think GH  is a great tool to try out some linear optimisation stuff directly linking geometry related figures (areas, volumes...) along with costs figures !... I haven't seen anything like that yet (but since i'm only a few months old in gh, i think is likely to already be something or this stuff out there.  ) If not... well you can always be the first ! (and this particular case of your thesis is a great example (few key variables) to try out "automatic optimisation") https://en.wikipedia.org/wiki/Simplex_algorithm that... by the way...has lots to do with spatial geometry...   …
Added by franco ferreiro at 9:21am on April 12, 2017
Topic: Persistent Data
ere I'm using a GH_ObjectWrapper type. This may not be the best way about doing this, but it does work. localSettings of type EM_Settings is the data that gets wrapped and then added to the Parameter. Whilst everything works fine first time around, when I re-open the GH file the persistent data is lost. I need to serialize the data in some way in order to write it to a GH file and I'm not entirely sure how to do this.... I've tried for quite a while now, looking through the forum & SDK which offer clues but no joy... so I'm admitting defeat and running here!!! Here are some of the CS bits: public class MyComponent : GH_Component {     .........     private EM_SettingsParam myParam;     private EM_Settings localSettings;     private EM_Settings mySettings;     protected override void RegisterInputParams(GH_Component.GH_InputParamManager pm)     {           ...        myParam = new EM_SettingsParam();        EM_Settings localSettings = new EM_Settings();        myParam.PersistentData.Append(new GH_ObjectWrapper(localSettings));        pm.AddParameter(myParam, "Settings", "Se", "MySettings", GH_ParamAccess.item);     }     protected override void SolveInstance(IGH_DataAccess DA)     {        GH_ObjectWrapper temp = new GH_ObjectWrapper();        if (!DA.GetData(5, ref temp)){ return; }        mySettings = (EM_Settings)temp.Value;        ...     } } public class EM_SettingsParam : GH_PersistentParam<GH_ObjectWrapper> {      public EM_SettingsParam():      base(new GH_InstanceDescription("Settings", "Settings", "Represents a collection of Settings", "Params", "Primitive"))      {      }      ...blah singular blah plural blah exposure.hidden blah... } public class EM_Settings {      public bool Preview {get; set;}      // (more parameters here)      public EM_Settings()      {          Preview = true;      } } Any help much appreciated $:) John.…
Added by John Harding at 10:08am on May 5, 2013
Comment on: Topic 'Discrete genome - Elite size - Display settings?'
lly it should not make much of a difference - random number generation is not affected, mutation also is not. crossover is a bit more tricky, I use Simulated Binary Crossover (SBX-20) which was introduced already in 1194: Deb K., Agrawal R. B.: Simulated Binary Crossover for Continuous Search Space, inIITK/ME/SMD-94027, Convenor, Technical Reports, Indian Institue of Technology, Kanpur, India,November 1994 Abst ract. The success of binary-coded gene t ic algorithms (GA s) inproblems having discrete sear ch sp ace largely depends on the codingused to represent the prob lem variables and on the crossover ope ratorthat propagates buildin g blocks from pare nt strings to childrenst rings . In solving optimization problems having continuous searchspace, binary-co ded GAs discr et ize the search space by using a codingof the problem var iables in binary st rings. However , t he coding of realvaluedvari ables in finit e-length st rings causes a number of difficulties:inability to achieve arbit rary pr ecision in the obtained solution , fixedmapping of problem var iab les, inh eren t Hamming cliff problem associatedwit h binary coding, and processing of Holland 's schemata incont inuous search space. Although a number of real-coded GAs aredevelop ed to solve optimization problems having a cont inuous searchspace, the search powers of these crossover operators are not adequate .In t his paper , t he search power of a crossover operator is defined int erms of the probability of creating an arbitrary child solut ion froma given pair of parent solutions . Motivated by t he success of binarycodedGAs in discret e search space problems , we develop a real-codedcrossover (which we call the simulated binar y crossover , or SBX) operatorwhose search power is similar to that of the single-point crossoverused in binary-coded GAs . Simulation results on a number of realvaluedt est problems of varying difficulty and dimensionality suggestt hat the real-cod ed GAs with t he SBX operator ar e ab le to perform asgood or bet t er than binary-cod ed GAs wit h t he single-po int crossover.SBX is found to be particularly useful in problems having mult ip le optimalsolutions with a narrow global basin an d in prob lems where thelower and upper bo unds of the global optimum are not known a priori.Further , a simulation on a two-var iable blocked function showsthat the real-coded GA with SBX work s as suggested by Goldberg and in most cases t he performance of real-coded GA with SBX is similarto that of binary GAs with a single-point crossover. Based onth ese encouraging results, this paper suggests a number of extensionsto the present study. 7. ConclusionsIn this paper, a real-coded crossover operator has been develop ed bas ed ont he search characte rist ics of a single-point crossover used in binary -codedGAs. In ord er to define the search power of a crossover operator, a spreadfactor has been introduced as the ratio of the absolute differences of thechildren points to that of the parent points. Thereaft er , the probabilityof creat ing a child point for two given parent points has been derived forthe single-point crossover. Motivat ed by the success of binary-coded GAsin problems wit h discrete sear ch space, a simul ated bin ary crossover (SBX)operator has been develop ed to solve problems having cont inuous searchspace. The SBX operator has search power similar to that of the single-po intcrossover.On a number of t est fun ctions, including De Jong's five te st fun ct ions, ithas been found that real-coded GAs with the SBX operator can overcome anumb er of difficult ies inherent with binary-coded GAs in solving cont inuoussearch space problems-Hamming cliff problem, arbitrary pr ecision problem,and fixed mapped coding problem. In the comparison of real-coded GAs wit ha SBX operator and binary-coded GAs with a single-point crossover ope rat or ,it has been observed that the performance of the former is better than thelatt er on continuous functions and the performance of the former is similarto the lat ter in solving discret e and difficult functions. In comparison withanother real-coded crossover operator (i.e. , BLX-0 .5) suggested elsewhere ,SBX performs better in difficult test functions. It has also been observedthat SBX is particularly useful in problems where the bounds of the optimum  point is not known a priori and wher e there are multi ple optima, of whichone is global.Real-coded GAs wit h t he SBX op erator have also been tried in solvinga two-variab le blocked function (the concept of blocked fun ctions was introducedin [10]). Blocked fun ct ions are difficult for real-coded GAs , becauselocal optimal points block t he progress of search to continue towards t heglobal optimal point . The simulat ion results on t he two-var iable blockedfunction have shown that in most occasions , the sea rch proceeds the way aspr edicted in [10]. Most importantly, it has been observed that the real-codedGAs wit h SBX work similar to that of t he binary-coded GAs wit h single-pointcrossover in overcoming t he barrier of the local peaks and converging to t heglobal bas in. However , it is premature to conclude whether real-coded GAswit h SBX op erator can overcome t he local barriers in higher-dimensionalblocked fun ct ions.These results are encour aging and suggest avenues for further research.Because the SBX ope rat or uses a probability distribut ion for choosing a childpo int , the real-coded GAs wit h SBX are one st ep ahead of the binary-codedGAs in te rms of ach ieving a convergence proof for GAs. With a direct probabilist ic relationship between children and parent points used in t his paper,cues from t he clas sical stochast ic optimization methods can be borrowed toachieve a convergence proof of GAs , or a much closer tie between the classicaloptimization methods and GAs is on t he horizon. In short, according to the authors my SBX operator using real gene values is as good as older ones specially designed for discrete searches, and better in continuous searches. SBX as far as i know meanwhile is a standard general crossover operator. But: - there might be better ones out  there i just havent seen yet. please tell me. - besides tournament selection and mutation, crossover is just one part of the breeding pipeline. also there is the elite management for MOEA which is AT LEAST as important as the breeding itself. - depending on the problem, there are almost always better specific ways of how to code the mutation and the crossover operators. but octopus is meant to keep it general for the moment - maybe there's a way for an interface to code those things yourself..!? 2) elite size = SPEA-2 archive size, yes. the rate depends on your convergence behaviour i would say. i usually start off with at least half the size of the population, but mostly the same size (as it is hard-coded in the new version, i just realize) is big enough. 4) the non-dominated front is always put into the archive first. if the archive size is exceeded, the least important individual (the significant strategy in SPEA-2) are truncated one by one until the size is reached. if it is smaller, the fittest dominated individuals are put into the elite. the latter happens in the beginning of the run, when the front wasn't discovered well yet. 3) yes it is. this is a custom implementation i figured out myself. however i'm close to have the HypE algorithm working in the new version, which natively has got the possibility to articulate perference relations on sets of solutions. …
Added by Robert Vier to Octopus at 1:59pm on June 8, 2013
Comment on: Topic 'Analysis Mesh, export to illustrator?'
t. This was a reasonably effective workflow for the purposes of solving the initial problem. (in reviewing this post, it seems a bit lengthy, but hopefully it's of use to others). Link to Illustrator Script example:https://forums.adobe.com/thread/508138 Portion I used: This applies to entire illustrator document. I am using Illustrator CC 64 bit and this worked okay. Tested a few times and it failed once, but a restart of Illustrator fixed it. var v_selection = app.activeDocument.pathItems;SwapFillStroke(v_selection); function SwapFillStroke(objSel) { for(k = 0; k < objSel.length; k++){ var subSel = objSel[k]; var c_fill = subSel.fillColor; var c_stroke = subSel.strokeColor; subSel.fillColor = c_stroke; if(!subSel.stroked) subSel.stroked = true; subSel.strokeColor = c_fill; }} redraw(); My goal was to export colored geometry, (analysis meshes for example), from Rhino and get it into illustrator with solid fills. If you want to know how meshes are colored in rhino...there are many explanations here on the forum, a quick search will get you more detailed information. Short version: export your lines from rhino to illustrator and run the script listed above to make the stroke color the fill color. (in illustrator, shift+X will swap the fill and stroke colors on individual objects, but does not work on multiple objects..hence the need for the script). Detailed Version: In my case, I had 2 case studies I was working with.1 - wind rose meshes generated from Ladybug/honeybee2 - A mesh terrain that was colored by pre-set slope values. NOTE: There are a few plugins to bake objects with color. I used Human tools, (Bake Geometry and JustifiedText3D).http://www.grasshopper3d.com/group/human (lots of other great stuff in there too!) I had two types of geometry. (2 different definitions) 1- An analysis mesh, (HoneyBee/LadyBug), 2 - Lines generated from mesh faces. (mesh terrain/slope values). Export results as a DXF, and choose "do not explode". (these were my settings)   DXF seemed to produce the most consistent results.  (you could export/save as an AI file and just open them in illustrator, but that seemed to give inconsistent results with the script). Open DXF in Illustrator: Apply Script in illustrator: In the terrain example, there are only 5 colors, so selection in illustrator, by color, is very easy. In the results from honeybee/ladybug, (or any analysis process I imagine), the default colors are created with a much wider range of values. I presume the legend is then created by an average of those values within a range. My point is that, with the analysis results, selecting objects by color in Illustrator is probably not a very effective workflow. I only tested this on my instance of rhino and Illustrator. mileage may vary. In summation, at this point, it seems that the best way to get colored mesh faces, into illustrator, is to export the meshes, (which really ends up being the mesh face edges...curves), and bringing them into illustrator and running a quick script to swap the colors.  Once that is complete, you can then select ALL the objects, and change the stroke color/weight at once.…
Added by Chris Hanley to Ladybug Tools at 4:08pm on January 13, 2015
  • 1
  • ...
  • 625
  • 626
  • 627
  • 628
  • 629
  • 630
  • 631
  • 632
  • 633
  • 634

About

Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign In

Translate

Search

Photos

  • Kangaroo Structures

    Kangaroo Structures

    by Parametric House 0 Comments 0 Likes

  • Circular Extrusions

    Circular Extrusions

    by Parametric House 0 Comments 0 Likes

  • Voronoi Canopies

    Voronoi Canopies

    by Parametric House 0 Comments 0 Likes

  • Attractor Modules

    Attractor Modules

    by Parametric House 0 Comments 0 Likes

  • Weave Facade

    Weave Facade

    by Parametric House 1 Comment 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • Kangaroo Structures

    Kangaroo Structures

    Added by Parametric House 0 Comments 0 Likes

  • Circular Extrusions

    Circular Extrusions

    Added by Parametric House 0 Comments 0 Likes

  • Voronoi Canopies

    Voronoi Canopies

    Added by Parametric House 0 Comments 0 Likes

  • Attractor Modules

    Attractor Modules

    Added by Parametric House 0 Comments 0 Likes

  • Weave Facade

    Weave Facade

    Added by Parametric House 0 Comments 0 Likes

  • Origami Crane

    Origami Crane

    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