Skip to main content

FAQ

Welcome to the DynaMaker Frequently Asked Questions (FAQ) page!

Here are the most of the common questions categorized in different groups about:

Contact us at support@dynamaker.com if you don't find your question!

Docs

How do I find which library to use?

You can find all the libraries available in DynaMaker with a short description here.

Do you have more examples apart from the tutorials and how-to?

We are working on adding more examples and snippets to make things easier for DynaMaker developers. Although the tutorials cover the basics and the how-to examples cover some specific and common cases, you are very welcome to suggest any example case that it might help the community. Contact at support@dynamaker.com and we can discuss a new addition to our docs!

I want to learn more about JavaScript & TypeScript. Can you recommend any good resources?

You can read more about JavaScript & TypeScript here.

Why do the examples in docs differ in style from the templates in DynaMaker?

We are constantly developing and improving the DynaMaker functionalities and sometimes docs lag behind. When you find out differences, please reach out to support@dynamaker.com and we will remedy them promptly!

What does deprecated mean?

Deprecation is marking some code as no longer being useful, usually because it has been superseded by newer code. The deprecated code is not immediately removed from the codebase because doing so may cause errors. You might notice that some classes and functions that you've used previously have been deprecated. Deprecated classes and functions still work, but you should avoid them in new code that you write. They no longer show up in IntelliSense and will appear as strikethrough in the editor.

Deployment

How can I limit access to my application?

You can read more about limiting access to your applications with the Auth0 plugin here.

I deployed the wrong version of the app. How can I revert it?

Sometimes things do not work out quite as expected and there is a need to undo a deployment. There is not yet any built-in function for rolling back, but if you should need to revert to a previous deployment of your application, send an email to support@dynamaker.com and we will help you.

How can I unassign an existing filled deploy slot?

If you happen to have all your deploy slots filled and you want to replace an app assigned to a deploy slot with a complete different app, contact support@dynamaker.com so we can fix that for you!

Remember that if you want more deploy slots (i.e. more deployed apps) you would need to upgrade your subscription plan so more deploy slots are available. You can also contact support@dynamaker.com for the details.

Application and UI

How can I update the thumbnails of my component in the app dashboard?

You can update the thumnail in the editor settings located at the bottom-right of any code editor.

Is there a light/dark mode of the code editor?

You can switch between modes in the editor settings located at the bottom-right of any code editor.

How can I save and load my designs or configurations in an app?

You can check what is needed in your app in our how-to example.

How can I access a previous version of a configuration?

You can do it by switching to a prevision configuration revision in your url. You can read more about it at the end of the how-to example and about the configuration information in here.

How do I change the mouse buttons for camera settings?

In DynaMaker you can rebind your mouse buttons for camera settings as you want to suit your preferences. Use Studio.updateCameraSettings() to do so. The followings keys are used for the default settings:

Studio.updateCameraSettings({
mouseButtons: {
left: 'select',
right: 'rotate',
middle: 'pan',
scroll: 'zoom'
}
})

You can find more camera settings under Camera Handling.

How do I create a custom modal?

You can read more about pop-ups or modals here.

How can I change the style of the UI?

There a few features that are in-built in DynaMaker like the Menu, Quickbar and Metrics. However, these are predefined and always have the same aspect. In order to change it, you need to override the current style in your application under STYLE.

With the style sheet language Cascading Style Sheets (CSS) you can change the look and position of almost everything in your app. You can learn more about CSS here: https://developer.mozilla.org/en-US/docs/Web/CSS.

How can I change the font used in DynaMaker?

In DynaMaker it is possible to change the font used in:

  • models and layouts (read more here).
  • UI (read more here).

If you want add new characters that don't exist in the default DynaMaker's font, contact support@dynamaker.com.

My app is slow! What can I do to improve performance?

Everyone wants to have a dynamic product that updates very fast with certain parameters. This is one of the strengths of using DynaMaker and here are some tips you can try to improve the performance of your app:

  • Avoid calling the same function several times when maybe just once is enough.
  • 2D sketches are much faster to update than 3D models.
    • Think if you need to have 3D models in all the steps of your application
    • Try to have the 3D steps only when you don't update your model and you just need it for visualization (e.g. exports).
  • Usually, curves require more calculations than straight lines, especially in 3D models. Try to only use them when they are strictly needed, such as drawings or final 3D models (STL files).
  • addExtrude() and addExtrudeCut() can be performed with a sketch that consists of multiple closed sketches at the same time. For example:
    • a hollowed cylinder can be done with 2 concentric circle sketches and one single extrude (no extrude cuts).
    • multiple holes (circle sketches) can be cut extruded at the same time if they are merged into a single sketch.
  • addExtrudeCut() usually requires heavy calculations. Try using sketches that includes holes with any boolean operation or merging sketches directly with sketchA.mergkeSketch(sketchB).

Parameters

Why does my model flicker when updating parameters?

In DynaMaker, specially with heavy STL models, you might have run into a flickering problem when updating relatively fast your component with a slider parameter for example. This is mainly because the model is being created every time the component updates. Let's say that within the component, all the models are created in its generateGeometry(), therefore the models are not cached, discarded and created every time generateGeometry() is called. This can be easily avoided by creating the models outside of the function so they are "created" once and then properly cached.

As an example, you can take a look at the tutorial User Interface, where the roller component is created from 3 different STL models. In this case, these are created in GEOM3D and then the functions that get the models for generateGeometry() basically get the existing static asset created just above them. That is why the tutorial app takes a few seconds when creating the first section with multidirectional rollers and barely no time to create the second, the third and so on. Even if it's deleted, you will see that adding a new one will take no time because it has been already cached.

My parameter values are reset when switching tabs in the app.

One of the advantages with apps built in DynaMaker is that you can configure your product and never lose your work progress with your design through the application. However, one needs to be extra careful when the app grows in complexity with more and more parameters and configurators in different tabs.

A common problem happens when the user tries to switch between tabs and the parameters get reset to their default values. This could be mainly because of two scenarios with different complexity:

  • Scenario A: simply the default values of the parameters are not being set correctly. Remember that any parameter has a default value. It can be found in the optional arguments as e.g. defaultValue for input-like parameters, or defaultIndex for dropdown-like parameters.

    However, for dropdown parameters there's an easier way to set default values based on actual values and not by index, and it's by setting the parameter value right after its creation. As an example of parameters with default values:

    // Input parameter
    const nrCoffees = component.getProperty('nrCoffees')

    const nrCoffeesParameter = SKYPARAM.generateInputParameter('nr-coffee-parameter', 'Nr Coffees', {
    defaultValue: nrCoffees, // here is the default value coming from properties
    minValue: 0,
    maxValue: 100,
    stepSize: 1
    }
    // Dropdown parameter using defaultIndex
    const coffeeFlavorParameter = SKYPARAM.generateDropdown('coffee-flavor-parameter', 'Coffee Flavor', [
    new SKYPARAM.DropdownItem(`Cappuccino`, CONSTANTS.COFFEE_FLAVOR.CAPPUCCINO),
    new SKYPARAM.DropdownItem(`Mocha`, CONSTANTS.COFFEE_FLAVOR.MOCHA),
    new SKYPARAM.DropdownItem(`Latte`, CONSTANTS.COFFEE_FLAVOR.LATTE),
    ], {
    defaultIndex: 1 // Mocha will be the default value, regardless of the property
    })
    // Dropdown parameter using setValue
    const coffeeFlavor = component.getProperty('coffeeFlavor')

    const coffeeFlavorParameter = SKYPARAM.generateDropdown('coffee-flavor-parameter', 'Coffee Flavor', [
    new SKYPARAM.DropdownItem(`Cappuccino`, CONSTANTS.COFFEE_FLAVOR.CAPPUCCINO),
    new SKYPARAM.DropdownItem(`Mocha`, CONSTANTS.COFFEE_FLAVOR.MOCHA),
    new SKYPARAM.DropdownItem(`Latte`, CONSTANTS.COFFEE_FLAVOR.LATTE),
    ])
    coffeeFlavorParameter.setValue(coffeeFlavor) // here is the default value coming from properties

    You can read more about the parameter optional arguments here

  • Scenario B: the configurator shown in the app's UI is created in an assembly's subcomponent, which for simplicity, could be cleared and added again to the component handler of the assembly (as it is done in the tutorial). One way to approach this problem could be to move all configurators (and related properties) to the top-level component (usually assembly), so that you update the properties once and pass them to the subcomponents accordingly.

    The risk of configurating a subcomponent directly is that if your product can not have this subcomponent in particular (e.g. due to a parameter that disables it), then you might be configuring nothing, since it doesn't exist. Then, having the configurator in a component that always exist (like an assembly even if it has no subcomponents) could be the safer choice. Once you have the whole structure ready and think it's possible (and feasible) not to have all configurators in the assembly, then you can start moving the configurators to the subcomponents.

How can I update the model instantly when using a slider parameter?

Doing the following should make your models update faster with a slider:

  • Go to your component:
    • go to PARAMETERS.
    • make sure you use configurator.addUpdateCallback() instead of configurator.addCompletionCallback() , since the latter has a very short time delay.
  • If you want to see the result in your component right away:
    • go to PRESETS COMP.
    • in your new component presets set the optional argument useUpdateCallback to true.
    • you should have the following as an example:
      const mainComponentPreset = new PRESET.ComponentPreset(COMPONENT.Component, {
      useUpdateCallback: true
      })
  • Go to your application:
    • go to UI.
    • go to the tab (SKYUI.Tab) where your configurator is located.
    • set the optional argument instantUpdate to true.
    • you should have the following as an example:
    const productTab = new SKYUI.Tab('Product', generateProductToolbarItems, {
    instantUpdate: true
    })
    Updating a model instantly when moving a slider means that generateGeometry() function is called more frequently, so this is usually suitable for simple models and this could affect your app's performance, especially in larger products, but you can easily turn this off by writing instantUpdate: false instead.

My model isn't changing when I change parameters (slider/input field, dropdown)

Make sure you run the needed function that modifies your component in the callback of your configurator. For example, if your table changes in size with a parameter and consequently more legs must be added, you should run some kind of component.update() in configurator.addCompletionCallback(), where update() contains the logic of adding more legs as subcomponents of the table.

However, using the built-in function for any component component.setProperties() triggers automatically component.update(), in which you might have some logic to update all possible subcomponents. If so, make sure the top-level component is passing the right properties to its subcomponents.

Components and Models

Something is wrong with my model. How can I fix it?

Sometimes we think that the problem is in the model, but it usually comes from the sketches that generate them. Some tips:

  • when cut/extruding, try to have a closed sketch. Make sure you end the sketch with sketch.lineToId(0) or sketch.curveToId(0) to return to the first node 0.

  • when doing cuts, try making the like extrusions (model.union() or model.addExtrude()) to see where they end up. If for some reason, it collides with another model (e.g. holes), try changing the opacity of the model material to help you see it.

If none of the above solved your case, try debugging to see if your variables and properties have the expected values.

Drawings

My drawing takes time to generate due to projections. What can I do to improve it?

You can read some tips here that can help you improve the performance of your drawing when generating projections.

Is it possible to take pictures from the app and add them to a drawing?

Yes. However since this is a special solution, you need to contact support@dynamaker.com to get some guidance on how to do it.

Imports and Exports

What file formats are supported in DynaMaker?

As for 2D file formats:

  • PDF and DXF files are supported and can be uploaded to the app dashboard. From these one can create static sketches for modelling (extrusions, cuts, etc), although DXF are preferred to do so. Also, one can import these files together with SVG directly into the configuration of your application and use them as reference for example, check how to do so in the how-to example.

  • It is also possible export DynaMaker drawings as PDF and DXF. Check the tutorial My First Drawing to see how to do it.

  • Also, both JPEG and PNG picture files are supported. For example, one can add a picture to a layout through layout.addImage() (explained in My First Drawing too), use them as thumnails in a parameter modal, or take a picture of the current preview and even add them to a drawing.

As for 3D file formats:

  • STL, PLY and GLB files are supported to be imported. These are then static models and can be used in your app directly. GLB files that include textures are also supported.

  • It is also possible export DynaMaker geometry in those formats, together with BIM (or IFC) and STEP files. However, for these last two there is no built-in functionality in DynaMaker. Contact us at support@dynamaker.com so we can help you enable it for your specific case.

  • Unfortunately other 3D file formats needs to be converted to the supported formats in order to be able to use them.

As for other file formats:

  • In DynaMaker you can find different file formats that can be used depending on their purpose. For example:
    • tables (as CSV or TSV) and objects (JSON) to create dataset
    • tables (as CSV or TSV) and objects (JSON) to use them in the plugins, like PIM or Translation.
    • BOM data can be exported as TXT or CSV.

Is it possible to convert certain file formats to other formats within DynaMaker?

Yes, this can be done in several ways generally speaking. In DynaMaker there's a plugin meant for converting file formats to the desire (and supported) ones. You can read more about the DynaMaker plugin CloudConvert here.

How can I download geometries as BIM (IFC) files?

Reach us at support@dynamaker.com so we can help you converting geometries to BIM (or IFC) for your specific case.

How can I download geometries as STEP files?

Reach us at support@dynamaker.com so we can help you converting geometries to STEP for your specific case.

How can I download my PDF drawing through a button?

You can read more about download files of any available type in this how-to example.

How can I generate and download a BOM through a button?

You can read more about an example in this how-to example, where you could learn how to generate the BOM and use it both to download and show it in your drawings at the same time!


I'm stuck and none of the above solved my problem. Could you help me please?

Of course! We are happy to help you to solve any other problem. Contact us at support@dynamaker.com.