What's new

Using Wizoscript for scaling down assemblies

I need to scale down Geomagic Design assemblies (scale 1/22.5) in order to obtain parts which I could print using my hobby-grade FDM 3d printer.
My designs are made of hundreds of instances of single Parts, put together in assemblies. In GD you can scale down parts, but not assemblies. I was thinking of using Wizoscript for iterating through each part of the assembly, creating a new configuration in every part, apply a scale feature of the part in the newly created configuration. This way, I could also switch from the original (1:1) model to the scaled down version by just switching the configuration in the main assembly).
Now, it looks like wizoscript does not support the mirror/scale down feature of the published alibre API. Does anybody know if there is another tool to achieve the same goal? Or even another software I could use to achieve the same goal? Basically what I need is a tool for scaling down, modify small parts of the design (for instance too tiny walls), and cut bigger parts in pieces for better 3d print. Of course (at least as far as my undestanding goes), using a combination of Geomagic Design, design configurations and Wizoscript.
 

ajayre

Alibre Super User
technolazy said:
Now, it looks like wizoscript does not support the mirror/scale down feature of the published alibre API. Does anybody know if there is another tool to achieve the same goal?

Why not contact me and asked for the part scaling support to be added???
 
Hello,
Why not contact me and asked for the part scaling support to be added???
Sorry about that. Actually that's what I tried to do in the first place by leaving a couple of messages on the contact form on wizotools.com. Since I haven't had any feedback, I though that either the messages never arrived to destination, or that you don't like receiving feature requests via the contact form. That's why I landed on this forum.
As a developer by trade and casual/hobby CAD-user, I think Wizoscript is simply what GM was lacking. Last year I even did a presentation of the tool at a meeting organized by the representative of Geomagic Design in my country, and everybody was thrilled to see what the tool is able to do, especially the representative who by then was not even aware of the existence of the tool.
Anyways, based on the API documentation, this should be the method:
Code:
IADScaleFeature AddScaleFeature(
	bool scaleAboutCenteroid,
	bool uniformScaling,
	Object uniformScaleFactor,
	Object scaleFactorX,
	Object scaleFactorY,
	Object scaleFactorZ,
	string uniformScaleParamName,
	string scaleFactorXParameterName,
	string scaleFactorYParameterName,
	string scaleFactorZParameterName,
	string name
)
Would be really nice if this would be available in Wizoscript directly.
 

ajayre

Alibre Super User
technolazy said:
Actually that's what I tried to do in the first place by leaving a couple of messages on the contact form on wizotools.com. Since I haven't had any feedback, I though that either the messages never arrived to destination, or that you don't like receiving feature requests via the contact form. That's why I landed on this forum.

I just tested the contact form and I received my own message, but I can also be PMed through this forum.

90% of feature requests that I get are for things that are not in the GD API, so I can't add them.

I will add support for this one early next week.
 
Great! Then I'll begin writing a script with wizoscript for the first two steps needed by my "scale assembly" workflow: iterate through all parts of the assembly and add a new configuration for each part. Thank you very much.
 

Kunstmaan

Alibre Super User
technolazy said:
I need to scale down Geomagic Design assemblies (scale 1/22.5) in order to obtain parts which I could print using my hobby-grade FDM 3d printer.
.
Would be great but how do you tackle the parts with voids that have a certain wall thickness??. The 3d printer used must have a minimum requirement for that

Marreike
 

ajayre

Alibre Super User
I've added this to WizoScript 3.05, which is now available. Two examples:

Uniform scaling around the center:

Code:
MyPart.Scale("Foo", True, 10.5)

Non-uniform scaling around the center:

Code:
MyPart.NonUniformScale("Bar", True, 11.4, 0.9, 6.2)

In return for adding this for you I would greatly appreciate it if you could please post a short, simple tutorial on this forum, in the tutorials section, showing how you are using WizoScript or perhaps showing some technique you have learned along the way. Thank you.

Andy
 
Would be great but how do you tackle the parts with voids that have a certain wall thickness??. The 3d printer used must have a minimum requirement for that

You are right, most 3d printers have limits for wall thickness and this is also the case of my ultimaker2. To address that issue I usually work with configurations for every part. First I create a distinct configuration for the scaled down part, and I apply the scale feature to this configuration only. This leaves the original part unchanged and I can still refine/modify it later on and the changes will be automatically transferred to the scaled down model. Then if I see that the scaled down model has an issue for printing (i.e. tiny walls), I usually create another configuration based on the scaled down configuration, and add or delete features (for instance I could increase the thickness of a wall by adding a different extrusion feature) to correct just what needs to be corrected. I use the same technique for preparing the part or assembly for print. That's particularly advantageous when working with assemblies, since suppressed or hidden parts are not exported in STL.
Another interesting tool (don't know if it is available in Cubify design as well) is Global parameters since you could have distinct global parameters for the 1:1 and for the scaled down version of your design. If you design your assembly from scratch with this in mind you can solve the thickness problem in a quite elegant way.

Thank you Andy for implementing the feature in wizoscript, I will post something on the tutorials section.
 

bigseb

Alibre Super User
Kunstmaan said:
technolazy said:
I need to scale down Geomagic Design assemblies (scale 1/22.5) in order to obtain parts which I could print using my hobby-grade FDM 3d printer.
.
Would be great but how do you tackle the parts with voids that have a certain wall thickness??. The 3d printer used must have a minimum requirement for that

Marreike
GD's built-in printability function very nicely highlights any problem areas and is particularly useful for scaled models. I tweaked mine specifically for my printer.
 

Attachments

  • Capture.JPG
    Capture.JPG
    76.4 KB · Views: 8
  • Capture2.JPG
    Capture2.JPG
    60.2 KB · Views: 9
Has anybody already tried activating a Configuration in a part/subassembly of an assembly using WizoScript?
I would like to activate a specific configuration (the configuration in which I applied the scale feature) in each part of the assembly with a single function call in WizoScript. But the activation seems to be working only if I call Activate() on the top level assembly; all calls to Activate on configurations of subparts does not seem to produce any results.
Here is my code:
Code:
def ActivateConfig(Assem, configName):
  for P in Assem.Parts:
    try:
      aConf = P.GetConfiguration(configName)

    except:
      print "Configuration %s not found for part %s, ignoring" % (configName, P.Name)
      continue

    print "Activating config %s for part %s" % (configName, P.Name)
    aConf.LockAll();
    # this DOES NOT WORK apparently
    aConf.Activate();

  for SA in Assem.SubAssemblies:
    ActivateConfig(SA, configName)


# top-level assembly
Assem = Assembly(r'\\Mac\Dropbox\Alibre\funi\assembly-autoscale', 'finestrella-laterale-centrale-sinistra-assembly.AD_ASM')

# adding a new config to the top level assembly
AssScaledConf = Assem.AddConfiguration(scaledConfigName)
AssScaledConf.LockAll();

# activate the top assembly, this WORKS
AssScaledConf.Activate()

ActivateConfig(Assem, scaledConfigName)

By reading through the API documentation of GD, I suspect this being related to the concept of Design Session, however I don't get how the script could take it into account.
 

ajayre

Alibre Super User
I tried this and WizoScript is setting the active configuration for the part. The change "sticks" in the GD API, but it is not reflected in the GD user interface.

I will have to contact 3DS and see if they have any suggestions.
 

ajayre

Alibre Super User
ajayre said:
I will have to contact 3DS and see if they have any suggestions.

3DS got back to me. It's not currently supported in the GD API unfortunately. There is a piece of code on their side missing to make it work.
 
Top