Jump to content


Photo

formZ 9


  • Please log in to reply
91 replies to this topic

#21 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 12 December 2016 - 02:21 PM

  Less to learn = easier.

 

I'm a bit skeptical. 90% of the programing will still use the functions developed by AutoDesSys to communicate with FormZ (just using different name(s) ) - pretty much as is the case now. The real power comes from the additional capabilities of python to  manipulate and search existing data. Hopefully things like Regexp will also be included as is standard with Python. There are many versions of embedded Python and without its full capabilities, this may just turn out to be a academic exercise. Hopefully the beta will consider ease and capability rather than just one/one conversion with the vision to expand by using all the ability of Python and FormZ.

 

To be successful, the new SDK must also appeal to both experienced and new users, which is about FormZ not Python. Hopefully, AutoDesSys is also taking this  opportunity to create an easier more straight forward interface to manipulate or customize FormZ. This would be particularly useful to enhance those areas which do not have widespread appeal or use and for which AutoDesSys alone can not afford to spend much time. Hopefully the focus is still on FormZ  to add appeal to add a great number of new users - aka Sketchup


  • qapedkat, dapedkat, Brantheat and 5 others like this

#22 Chris lund

Chris lund

    Advanced Member

  • Members
  • PipPipPip
  • 567 posts
  • LocationWestcliffe Colorado

Posted 13 December 2016 - 01:01 PM

When I say Less to learn,  I mean, as a NON-Regular scripter, I don't have to learn other languages to do other things outside of formZ.  True, the API to hook into fZ is large.  But That should only change somewhat from v6.x where I was active. Expanded, to be sure due the the expansion of fZ capabilities.   Python would be useful to me, as there is only 1 syntax to learn and keep straight when scripting fZ, Operating system, MicroControllers (will be switching from the Arduino environment to the Raspberry PI)   etc...  For someone like me who does not "code"  a lot, a single syntax is a huge improvement.  I don't even really care that it is Python just that it is more universal than FSL was.  

 

 

Fully Agree with the SDK taking the burden off of ADS for all those oddities which do not appeal to the larger set of users.  Which my litany of scripts that I want to make, there is no reason ADS would want or need to fill, as they are more specific to my methods of working, opposed to the typical Architect User base that ADS has.

 

Though, an "easier more straight forward" interface would only really be useful if you could use it, then where it would have limitations, then to have Python take it the rest of the way, where it can.  This would help speed up the process.

 

Curious though,  how would yo use RegEx  in fZ?  I don't see a use for a whole lot of use for complex text string searching...  though, my use may dictate that view

 

 

 

 


Edited by Chris lund, 13 December 2016 - 01:13 PM.

Christopher Lund

Neurascenic - Industrial Design


#23 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 13 December 2016 - 06:13 PM


Curious though,  how would yo use RegEx  in fZ?  I don't see a use for a whole lot of use for complex text string searching...  though, my use may dictate that view

 

As you said regex is good for complex string searching. Assume you have hundreds of similar objects, similarly named except for a few letters or numbers. With a pattern, you can easily select a subset of interested objects and modify them as a group. 2-3 lines of code verses ten's of ..... BTW Regex is a standard feature of Python, but embedded add-ons are generally re-compiled only with the features wanted by the user to reduce space. Hope that regex is one of them included--- just saying?



#24 Alan Cooper

Alan Cooper

    Advanced Member

  • Members
  • PipPipPip
  • 473 posts
  • LocationBuckinghamshire, UK

Posted 16 December 2016 - 01:45 AM

Tech, please would you advise us of minimum system requirements, especially whether it will be Windows 7 compatible? I note that with the upgrade from 7 to 8 compatibility for XP was lost so as a Win 7 user I'm a bit worried.


FZ8.5 pro with Renderzone on Windows 7 64bit.

Family Plan.


#25 Walter

Walter

    Advanced Member

  • Members
  • PipPipPip
  • 53 posts
  • LocationAUSTRIA

Posted 16 December 2016 - 09:50 AM

The only thing i hope is that they finally make changes in the Workspace - the floating palettes are horrible - there should especially be no possibiltiy  that the modelling window could be covert by palettes. There should be a fix Workspace Frame as in all other programms.

 

It's still a disaster when opening a file created on a machine with other Palette Settings - the modelling window is allways covered

 

Please don't forget the disscusion about improvements started in may 2015 about the layout - this would be the major Point for me.

 

 

http://forums.formz....ayout#entry6087


  • Hugo, Andre Conlledo, Justin Montoya and 3 others like this

#26 Tech

Tech

    Moderator

  • Moderators
  • 4,110 posts

Posted 16 December 2016 - 11:08 AM

Alan, 

 

Please view our system requirements page which can be found here: http://www.formz.com...ormzSystem.html

 

Since version 9 is still in development we do not have any specific requirements available at this time, but we will try to support as many previous operating systems as we can.



#27 Alan Cooper

Alan Cooper

    Advanced Member

  • Members
  • PipPipPip
  • 473 posts
  • LocationBuckinghamshire, UK

Posted 17 December 2016 - 02:43 AM

Thanks Tech, I was already aware how to find system requirements for version 8 but I am pleased that it sounds like you will do your best to support Windows 7 in the next version of FZ.


FZ8.5 pro with Renderzone on Windows 7 64bit.

Family Plan.


#28 Mike_A

Mike_A

    Member

  • Members
  • PipPip
  • 13 posts

Posted 21 December 2016 - 05:31 PM

As the initiator of the discussion Walter mentions above - I'll second his thoughts on the matter... 



#29 Tech

Tech

    Moderator

  • Moderators
  • 4,110 posts

Posted 20 January 2017 - 05:29 PM

Updated teaser....simple example of python script in formZ 9 with live interface.

 

 

Attached Thumbnails

  • steps.png

Attached Files


  • Andre Conlledo, mleblanc and Chris lund like this

#30 Andre Conlledo

Andre Conlledo

    Advanced Member

  • Members
  • PipPipPip
  • 182 posts

Posted 20 January 2017 - 05:36 PM

Wow! I'm going to have fun playing with that!



#31 Chris lund

Chris lund

    Advanced Member

  • Members
  • PipPipPip
  • 567 posts
  • LocationWestcliffe Colorado

Posted 24 January 2017 - 08:19 PM

Ready for it any day!


  • Andre Conlledo likes this

Christopher Lund

Neurascenic - Industrial Design


#32 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 29 January 2017 - 04:08 AM

Maybe this has been covered before BUT ---

 

What version of Python is Formz going to use for its embedded script API?? Should I learn 2 or 3??



#33 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 29 January 2017 - 03:13 PM

Thinking about my previous inquiry? -- I'm going to expand somewhat although I expect the answer will be "wait and see".

 

1. What implementation of Python will be used? -- CPython, JPython etc. or some special compiled hybrid?

2. Will the standard library be included?

3. Will Formz use the standard TK graphical interface or will we be limited to a few internal GUI's??

4. Will Formz allow the user to add additional libraries? Are any 'add-on' libraries included such CSV etc. outside the standard? OR will the interpreter be completely closed to the user?

 

Excited about the coming new features of V9 and I think a 'heads-up' would be nice. I seen some script attempts by other Vendors that were developed completely in the dark and when released were so limited because of no practical input, that they were virtually useless and beyond repair? Just Asking since I think now is the time to plan for and anticipate future expansion(s)?


  • Chris lund likes this

#34 jwiede

jwiede

    Member

  • Members
  • PipPip
  • 14 posts

Posted 01 February 2017 - 05:48 PM

Can someone from ADS comment whether you'll be enabling GUI/UX by exposing Pyside or similar?


Edited by jwiede, 01 February 2017 - 05:48 PM.


#35 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 02 February 2017 - 12:55 AM

Hopefully someone from ADS will comment. I don't know that much about Pyside to add support or comment. But here's a recent review. Clearly the writer prefers PyQT over Pyside?

 

https://www.reddit.c...when_pyside_is/

 



#36 Tech

Tech

    Moderator

  • Moderators
  • 4,110 posts

Posted 21 February 2017 - 05:56 PM

Here are some answers to the questions about python scripting in form•Z 9.

 

form•Z 9 uses standard python 2.7.  In essence we have developed a Python interface for form•Z that allows python scripts to access information in form•Z and use form•Z features while using the standard python language and features.

 

The Python standard libraries can be used (by including the proper import statement in the script).

 

You technically could use third party libraries like TK/QT, however as form•Z is not built on these interfaces, your interfaces will be disconnected from the form•Z interface and may even cause some conflicts (window ordering issues etc). You should use the form•Z provided UI functions to leverage the existing interface and capabilities (rendering, interaction, picking, snapping, palettes, undo etc). Since we are using standard python, you should be able to use any conforming python library that you have installed on your machine and that is available to any python implementation.

 

We look forward to hearing more about the types of scripts you wish to develop and we expect this to be a dynamic dialog as we expand what can be done with scripting in form•Z 9 going forward. We hope to make a technology preview of the new script features available sometime March.

 

Next we will post a few WIP  examples.


  • Chris lund likes this

#37 Tech

Tech

    Moderator

  • Moderators
  • 4,110 posts

Posted 21 February 2017 - 06:03 PM

WIP python script to create a Hidden Line rendering (saved in a tiff file) of each view, in each formZ project file, in a user selected folder:

 

import formzPythonInterface as fz

 

import os

 

def fzMain():

# ask user for folder to render
source_path = fz.uiSelectFolder("Select Source Folder")

os.chdir(source_path);
list_dir = []
list_dir = os.listdir(source_path)

for file in list_dir:   # for each file in folder
  if file.endswith(".fmz"):   # check is its a fmz file
   project = fz.loadProject(name=file)  # load the file, save reference to close
   if(project):
    viewList=[]
    viewList = fz.getViewList()    # get the list of saved views

    for view in viewList:     # for each saved view
     fz.setActiveView(view)     # select the view
     fz.setRenderer("Hidden Line");   # select the renderer
     fz.render();       # render
     s = os.path.splitext(file)[0] + "-" + view.getName()  # make name file-view
     fz.export("tif",name=s,keepExisting=0)      # export tiff file
    fz.closeProject(project,save=0)        # close project

 

 


  • Chris lund likes this

#38 Tech

Tech

    Moderator

  • Moderators
  • 4,110 posts

Posted 21 February 2017 - 06:12 PM

WIP python script to make steps. This script creates a live interface with sliders and a check box. When the user changes a UI element, makeSteps is called to create the new steps (watch movie below  to see it in action)

 

 

import formzPythonInterface as fz

 

num_stairs = 24
bot_width = 48.0
top_width = 248.0
do_reverse = 0
olist=[]

 

# create the new steps

def makeSteps(panel):
global olist

 

# remove objects from last iteration
while (len(olist)):
  obj = olist.pop()
  fz.delete(obj)
  del obj

 

# get values from UI
num_stairs = panel.getValue(1)
bot_width = panel.getValue(2)
top_width = panel.getValue(3)
do_reverse = panel.getValue(4)
direction = panel.getValue(5)

wdh = fz.xyz(12.0, 12.0, 1.0)
org = fz.xyz(0.0, 0.0, 0.0)

 

# make steps
for n in range(0, num_stairs):
  wdh.x = bot_width + (((top_width-bot_width)/float(num_stairs)) * float(n))
  obj = fz.cube(org, wdh, [0,0,0])
  s =   "Step %d" % (n)
  obj.setName(s)
  #  obj.rotate()
  org.y += 12.0
  if do_reverse:
   org.z -= 10.0
  else:
   org.z += 10.0

  olist.append(obj)

 

 

def fzMain():

panel = fz.uiPanel("myStepOptions")    
# creates the uiPanel

panel.slider(1, "Number of Steps", num_stairs, 3, 43)
panel.sliderEdit(2, "Bottom width", bot_width, 12.0, 48.0)
panel.slider(3, "Top width", top_width, 48.0, 248.0)
panel.check(4, "Reverse", do_reverse)

panel.presentPalette(newValueFunc="makeSteps")      
# show on screen

Attached Files


  • Chris lund likes this

#39 Chris lund

Chris lund

    Advanced Member

  • Members
  • PipPipPip
  • 567 posts
  • LocationWestcliffe Colorado

Posted 21 February 2017 - 09:20 PM

For Starters,   Hope this gives a good idea of the things I want to do.

Additionally, access to a ALL of the Toggles within the fZ interface  (i.e.  in the rendering modes, there are a lot of options that can be toggled, but have no Key Shortcut option)

 

•Additional Align/Distribute options.

•Face2Face  (like the place tool, but only one object to one face.  (unless I am missing an existing tool)

•Wind Load Calculator.

•MIMI with more capabilities than it currently has

•Random Mapper with more capabilities than it already has.

•Make a value of one object equal that of another  (length, area, volume)   Most of this has been built in FSL, stopped when I realized I could not continue in 8.x

•Automate rendering output for multiple rendering modes (very similar to what you have above, but cycle through different rendering modes and mode options, as well as to render out

     multiple views and layers from a single activation of the script.   ( I will often have 3 or 4 renderings that I later assemble into 1 in photo shop  x 5 or 6 different views... All this automated)

•Write extensive amounts of text to disc.   would like to have XML as an built in option, but will fake it if I have to.

•Add marks (Start/Stop/Alignments) to flat patterns (grouped) at specific locations from different criteria.  These will have to Drill Down through object Groups

  °Tick Mark at Click

  °Tick Mark at Segment count from Click (nearest node, or nearest point on segment to click options)  (with Reverse direction option)

  °Tick Mark by Distance Intervals

  °Tick By Selected Segments   (of other object

•Object Naming Scripts (in part, rebuild LAB's rename so that it works correctly)

  °rename by order of objects in the pick buffer,  not by order created.

  °Modify the Mirror tool so that object name has a "Mirror"  appended to it.    and if a Copy,  no "copy"  needed

•Visible Labeling

  °Group name to text label or Note visible in modeling environment.  (Needs to tunnel through Group to add text/Label)

  °Add Placement/Alignment tables into Seam Allowance (adjustable)  Depending of different pre-picked criteria

•Attributes.   to be able to use attributes as input or stored variables for modeling decisions.

  °A way to fake the old "Marked Points"  of 6.x   and for that to translate down stream such as an unfolded object to pattern.

  °Seam Allowance Attribute.    While this can be done in modeling, it doesn't need to be, as other applications use an attribute feature, rather than a separate object to represent SA.

  ° others?

• Fix the Unfold tool so that it is useable, and out of the 1990's ( Don't know if all this can be done in a script, but I sure the hell am going to try)

  ° While it was a nice idea to label the sides of the unfolded patterns, it is unpractical to use for objects of any sophistication.  (labels for every segment??? Understand, that a machine

        that cuts out patterns, has to draw all the placement labels.   this takes a lot of time that isn't required for the assembly staff to be able to do their job  i.e. overkill So I don't use it)

  °in objects that have any kind of sophistication to them, pre-separation of the patterns is done, so as to NOT rely on the unfold algorithm.

    Labels should come from objects that share edges and only one label per shared edge, with a start and stop mark on a pattern that shares more than 2 nodes at that location

  ° Analyze object prior to unfold to see if there are any Split Ends (will unfold cleanly or not)   And if Not, Mark the locations that are problematic

•Separate by surface Style (Material)

•Curve fit Match Generator (make a curve tool, similar to the C-Curve tool that the curve ends up with the same length as the source set of segments)   

    I do this all the time manually, and it is a huge PIA!

• Group Editing  

  °Enter Mode where you can enter a group, edit it, without any other objects that are not part of current group visible

       (Simple,  Isolate objects (group), Copy Name of Group to Buffer, Ungroup, allow editing,)

  °Exit Mode where all objects including any new object added while in Mode are Grouped once again and all other objects in scene (according to last state prior to entering mode) are

       visible again.

        (Select all objects, Group,Rename New Group to Old name from Buffer, Reveal objects)

Pattern Rendering Scripts    (A series of scripts to help out rendering patterns for later large format printing)

 

Custom Rendering Mode (if Possible)


Christopher Lund

Neurascenic - Industrial Design


#40 poco2017

poco2017

    Member

  • Members
  • PipPip
  • 12 posts

Posted 21 February 2017 - 11:07 PM

Asking for “wish lists” is always dangerous – But here goes mine.

 

  1. As a new user of Python, I'd prefer 3.6 but I recognize that the shear volume of 2.7 code means that it's not going away anytime soon. Hopefully the SDK will anticipate a future upgrade?

  2. Multiple Labels – Ability to switch labels based on some criteria such as the view, a attribute or condition. Sooo – the ability to access all these conditions within the script for any object.

  3. Unicode Support – Pass through of Unicode text from Python to FormZ text and Labels. Not just limited to ASCII – necessary for international support.

  4. Ability to import RTF text and retain any formatting. Ability to format RTF text within Python and pass through to FormZ.

  5. Ability to access and read/write all object attributes and ability to add accessible custom attributes to any object. This would allow the user to build a custom library of objects, specific to the user which contain pertinent info.

  6. If TK/QT is not included – the ability to create and address user IO panels containing the standard widgets such as text boxes, buttons, ck boxes, dropdowns,lists, etc.

  7. Custom Spreadsheets – very important – to create and fill by script all cells/rows of user SS including control over formatting.

  8. Access, search, filter, all attributes of all objects including general plan data.

  9. Access and control of standard matrix commands to transform, rotate, move objects, etc. ability to read for each object, the end point , snap points, parallel, perpendicular, objects etc.

  10. Mimic keyboard input for all FormZ commands.

 


  • Alan Cooper and Chris lund like this




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users