Giter VIP home page Giter VIP logo

leap71_shapekernel's Introduction

Welcome to ShapeKernel

shapekernelcreations

(1) All parts from LEAP 71 were created through Computational Engineering Models based on the ShapeKernel library and the PicoGK engine.

The LEAP 71 ShapeKernel library bridges the low-level operations of a geometry kernel (in our case PicoGK) and the high-level functions that you want to use, when creating sophisticated engineering objects. It aims to simplify the process of generating geometric primitives that serve as the "atoms" of much more complex designs. For instance, a single heat exchanger part would consist of hundreds of such simple shapes (called BaseShapes) that are logically and spatially combined by Boolean() and Offset() operations.

baseshapeexamples

(1) Examples of different BaseShapes.

The ShapeKernel library is the foundation of the third layer of our software stack, which is the application-specific engineering layer. This layer holds algorithms that encode engineering knowledge and processes for certain kinds of objects, the actual Computational Engineering Models (CEMs).

softwareblocks

(1) Software stack for Computational Engineering.

Before diving into the details of what BaseShapes exist and how implicits and lattices can be rendered into voxels, let's get started with setting up the library and running an example task:

leap71_shapekernel's People

Contributors

aasimrashid avatar josefinelissner avatar leap71 avatar linkayser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

leap71_shapekernel's Issues

Log error when attempting to run ShapeKernel the first time

I got an error stating I had no log file created before trying to execute the command Go(), or something to that effect, the first time I tried to run one of the examples. I took the log entry command out of catch and ran it again and it worked. Tried running it a second time with the log command added back to the catch and it worked. For newbies like me, probably want to have them run the module first before creating the log (or maybe that's just a newb error?).

System.EntryPointNotFoundException: 'Unable to find an entry point named 'Voxels_BoolAddSmooth' in DLL 'picogk.1.1'.'

When trying to use the Voxels.BoolAddSmooth() or Voxels.BoolAddSmoothVx() functions, the "System.EntryPointNotFoundException: 'Unable to find an entry point named 'Voxels_BoolAddSmooth' in DLL 'picogk.1.1'.'" error is thrown. Seems like these functions are missing in the DLL?

The Voxels.BoolAdd() works fine in its place, but a nice smooth transition would be great!

Here's a MWE.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Leap71
{
    using PicoGK;
    using ShapeKernel;

    namespace Tobys_Examples
    {
        class MWE
        {
            public static void Task()
            {
                try
                {
                    LocalFrame frame = new LocalFrame();
                    BaseBox box = new BaseBox(frame);
                    BaseSphere sphere = new BaseSphere(frame);

                    Voxels voxBox = box.voxConstruct();
                    Voxels voxSphere = sphere.voxConstruct();
                    
                    // This fails
                    voxBox.BoolAddSmooth(voxSphere, 1);
                }

                catch (Exception ex)
                {
                    Library.Log($"Failed to run: \n {ex.Message}");
                }
            }
        }
    }
}

ExampleSpline and workflows based on imported STLs

First of all, thank you so much for your outstanding work on developing this tool. It is quiet a powerful tool once its established I feel. I am a new research student in the field of modelling optimised cooling channels to be purpose designed for AM. I have started working on PicoGK a few weeks back and have been spending a couple hours on this every week to explore its opportunities to see if it is applicable for my work. But I have had some real struggle getting into developing my own models mainly due to not being a native programmer and also due to the lack of comments in some of the examples. So, I'm hoping that someone can shed some light into these areas of the shapeKernal so I can have a better understanding of how to work with PicoGK.

As for the list of things I'm looking at is.

  1. How can we generate pipe at a certain distance from a surface? (point of focus being how can we make designs by understanding the models already loaded in voxels)
    For example, say there is an imported STL model that has been converted into voxels. But then how can you do operations or designs on these voxels generated such as adding a fillet or a pipe within it at a certain distance. I find it to be an essential tool for any modelling tool where you can add stuff to a model that is loaded or make additions based on it.

  2. I have been playing around with pipe modulations and splines where I can make the pipe longer or bend in certain directions. But if i want it to be condition based, i.e. make pipes that merge or stay at a distance from surface how can i implement that?
    The example codes of shape Kernal with some form of condition-based addition of voxels would be nice. let's say if i want to create a pipe or screw hole based on a variables value set to 2/3/4 then the number of pipes or screws generated would be based on that would be really helpful. I feel it's something similar to the HelixHX model but not filling a space but generate based on a condition.

  3. some comments on examples of PicoGK shapeKernals would be nice. The spline code used in the example Spline doesn't have any comments on what the parameters are assigned to new vector 3 are and I couldn't figure out what each of these variables are and what are the parameters used in it. So, in this case why are the values assigned to new Vector 3 (0,40,0) my understanding is that it's a coordinate but is there any specific format to selecting these coordinates? or can I choose any coordinates?

public class ExampleSpline : ISpline
{
protected ControlPointSpline m_oBSpline;
public ExampleSpline()
{
List aControlPoints = new List() {
new Vector3(0, 0, 0),
new Vector3(0, 40, 0),
new Vector3(0, 50, 20),
new Vector3(0, 60, 60),
};
m_oBSpline = new ControlPointSpline(aControlPoints);
}

Any help on this is much appreciated.

Kind regards,
Jim

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.