Jump to content

Mark Flamer

Member
  • Posts

    52
  • Joined

  • Last visited

Posts posted by Mark Flamer

  1. Python is a "Dynamically Typed" language. Values are typed, not variables. So, you can assign a value of any type to a variable x for example and then later assign a value of a completely different type to x. What this implies is that there is no static type checking during compilation, it is done at run-time. This allows you a lot of freedom in your code. The drawback is that you will not catch these type errors until the program is run.

  2. Here is an example that works. The node is "Set 3D Info". Looks like this uses one of the really old API calls that is view dependent. So, if you are in a 3D view other than "top", you will get unexpected results. There is an easy fix for this, we will try and get it into the next library release.

  3. Here is an example using a loft node. Each time its runs you will get a different curvy vase thing. The trick with this node is that it wants a group of curves instead of just a list. Maybe we should change that.

  4. Alan,

    "Parent POI handle" is probably getting the handle of the Marionette object it self. In the network that defines a Marionette object it is sometimes necessary to get the handle of the object. In this case it is assigning the hole cutting geometry to the skylight object. Let me know if that does not make sense.

  5. Good ideas. Btw, there should not be any problem launching the predefined dialogs defined in the dev wiki using Marionette. It just takes a line or 2 of code you can almost cut and paste into a node from the wiki. Here's an example in a couple images.

  6. You can absolutly suggest new ideas for content. And if we don't develop them, there is always a chance that someone else in the community will. Much of Grasshoppers success is due to the incredible ammount of additional content and packages that were developed. Almost none of this was produced internally. Kangaroo, Mantis, Ladybug, Honeybee, almost any animal name you can think of.......all developed by outsiders. Hint, hint...;-)

  7. These are the current OIP controls offered in Marionette

    Int

    Bool

    Real

    RealCoord

    RealAngle

    RealArea

    RealVolume

    Text

    TextStatic

    TextStaticParam

    Popup

    PopupClasses

    PopupLayers

    Separator

    PopupTextures

    This list and other useful Marionette code is in Marionette.py

  8. Chris, It is a limitation in VW that hybrid objects (objects that contain screen plane objects for 2D plan representation in addition to 3D objects) can not be rotated so they would end up non coplanar with the layer plane. I added a couple node to your network as shown in the attached image. This solves the 3D rotation problem. There still is a problem with the dimensions. I think this is related to some of the old VS calls that Marionette wraps that only work in screen plane coordinates. Specifically HWidth() & HHeight(). I'm looking into this. I am confident this object could be made to work as you like even with these restrictions. We might just have to model it using a slightly different technique. Maybe you could copy the control poly and use its geometry more directly for the extrusions. And possibly use some linear extrudes for the frames. That way you could even add more complex shapes for the stiles, etc..

  9. The problem in this file is that EAP's are plugins which dont get fully reset until after the script completes. This is a legacy "feature" from VectorScript designed to protect against avalanches of plugins reseting each other during script execution. So, as a result the extrude along path geometry is not available for use in booleans in the same script that creates them. Very unfortunate, but thats the way it is for now. Please file a bug or enhancement request and maybe we can find away around it.

  10. We actually added a path exactly for this reason on the mac. It should be available in SP2. It is just outside the package at

    "../Libraries/PythonExternals". Python modules will be available to VW and Marionette from this location.

    Also, In response to DomC above...I have seen Marionette launch dialogs and plot data from SciPy. It is possible.

    Take a look at the enormous functionality of these libraries. http://docs.scipy.org/doc/scipy/reference/

    All sorts of good stuff there. VW + Marionette + Signal Processing? ;-)

  11. vs.Marionette_DisposeObj() flags an object to be deleted...after the entire network has run. This is a really important difference from vs.DelObject() which immedatly deletes the object. If you use vs.DelObject(obj) in a node, and then have another node that operates on the same object after it has been deleted, you can say goodbye to VW.....crash! Once you are in the script and working with object handles, you are no longer protected. You have to be careful and abide by the same rules as we do. ;-)

×
×
  • Create New...