The code I use is very simple.

The code works if I use standalone python, but if I run it from within Compose, HW does not come up.

In the Task Manager one can see, that the HW Process starts but also dies immediately.

Here's the code that I use:

The shell shows the commands used in the directly in python.

I have also attached the Python file.

Have I missed anything?

Just like HM APIs such as hm_info, is there a way to find out which directory compose is installed in?

I do not want to look up an environement variable, unless that is the only way.

Does anyone have any tips for me?

Thanks,

Deb

But then I get an error message, where I see that the pkgIndex.tcl file is being searched for in the Compose Installation Directory:

Any ideas as to how I can avoid this from happening?

Thanks!!

]]>

Is there a way to create sections within a Compose script? Similar to the **%%** function in Matlab?

I sense there's a similar method/function but I'm struggling to find information.

Thank you!

]]>

As you already know, OML (Open Matrix Language) has a syntax compatible with other matrix-based languages, such as Octave. This compatibility leverages both the reuse of legacy data and syntax knowledge of these other softwares. It means that it’s possible to have a non-disruptive adoption of Compose and it can coexist with existing Math tools.

Please find attached a video explaining the main differences that you may encounter when trying to use your past scripts in Compose and how to overcome them.

Regards,

Roberta

]]>

@Kosuke IKEDA and I recently worked on a DMIGPCH reader for OML. It is an output file from OptiStruct with reduced M (mass), K (stiffness) and C (damping) matrices that can be fed into external data files to be used in subsequent analyses.

These are ASCII files whose tags *MAAX, KAAX *and *BAAX *identify what is data from mass, stiffness and damping, respectively:

Each value represents the nodal real value of the matrix. With it, it's possible to compute the eigen values and energy distribution of each degree of freedom.

Regards,

Roberta

]]>Whereas when I try to import a

I use the command * getpythonvar()*.

Am I missing something?

I have attached a file that can be used to reproduce my error message.

I am using Compose 2019.3

Thanks a bunch,

Deb

]]>I want to share some code that will help you to use a gamepad/joystick in compose.

I created an OML-class that represents the controller. I will provide you with more informations, documents and updates soon.

To make the code work, you need to install the XInput-Python interface:

https://pypi.org/project/XInput-Python/

In the topic below, there are instructions how to install python modules in compose:

regards

Nils

]]>

i'd like to share a script slightly modified, based on the very famous 99lines topology optimization script from Ole Sigmund group (http://www.topopt.mek.dtu.dk/).

It brings a topology optimization problem, for miminize compliance, while keeping a limited volume fraction of material. It is a bi-supported beam example.

This runs fine in Compose 2019..3+ I believe.

Just load the .oml file, and run the script.

Then for execution type a few parameters while calling the 'top' function.

top(20,10,0.5,3.0,1.5)

top(numb elems in x, numb elems y, volume fraction, penalization , minimum radius filter)

]]>

I wanted to share with you a tool to digitize plots in images using OML and Python. The aim is to convert plots that are introduced in text books like *Analysis and Design of Flight Vehicle Structures* (Bruhn, 1973):

Such plots are commonly used in industries like Aerospace to calculate constants and other parameters that assess Margins of Safety of components and systems. Finally, we can do a polynomial curve fitting to use these curves and compute these constants without the need to look at the plots everytime they must be applied.

The steps of the attached scripts are:

1) Give the axes bounds, degree of polynomial curve fitting and image whose plot will be digitized

2) Hit *Start *in the OML script (it will automatically call the Python script)

3) Give a first click with the mouse button to start selecting the corners of the plot

4) Select the corners

5) Give another click to select the points

6) Select as many points as you want

7) Double click with any key to finish the selection

8) Plot is generated and polynomial coefficients are computed and printed

Regards,

Roberta

]]>
**An Introduction to System Dynamics and Controls using Altair Compose (Click Here)**

**WHAT IS ALTAIR COMPOSE NOTEBOOK?**

The Altair Compose Notebook is an environment where you can develop interactive documents, mixing text, pictures, equations, and editable scripts.

· For Academia: an application to make teaching more efficient and fun

· For Professional: a tool to create interactive document that you can share across your organization

· For Everyone: an environment to develop and present your projects

** **

**WHAT WILL YOU LEARN FROM THIS NOTEBOOK?**

In this first notebook we talk about System Dynamics and Controls. Our aim is to provide you with all the basic knowledge you will need to work on your projects or deepen your studies.

We will cover:

1. System Dynamics

2. Continuous Dynamics

2.1. System Analysis

2.2. Control Theory

3. Discrete Dynamics

The theoretical explanation will be integrated by practical examples and applications, that will be developed leveraging Compose built-in functions (in particular the ControlSystem Library).

__MORE RESOURCES__

** **Also a .pdf version is available. CLICK HERE to download the **E-book: An Introduction to System Dynamics and Controls using Altair Compose**

I had multiple requests from users asking, as these 2 functions serve the same purpose then whats the difference between readmultvector & readcae? Which one do we use and when?

As an engineer myself, I tried to break it down based on 2 key factors below:

1. Syntax differences (Ease of Use)

2. Speed/Performance

Attached is the paper i wrote about the same with example.

Hope this helps users to pick the right command for their tasks.

Happy coding!!

Thanks,

Manoj kandukuri

]]>

I'm working on a project where I would need to couple Altair Compose with Flux.

I would like to set up parameters and feed them in Flux and import results back in to Compose for post processing.

Where can I access the commands library with definitions for such coupling of Compose and Flux?

Thanks.

Best regards,

Rok Hodnik

]]>

for a project I needed a function that creates a sphere.

Since there is no such function in the library I just want to share my function with you.

best regards

Nils

]]>

I have a time domain curve which I would like to convert into frequency domain.

By doing so I would like to obtain the magnitude and phase output from the curve. __ I need the Windowing function as well__. Something like what fft hanning does in HyperGraph.

Is there a similar function in Compose?

The output I need should have

I recently came across Compose, which I have no experience with at all so I do not know about the capabilities of the software.

Could anyone tell me whether is possible to use Compose to alter mechanical properties for an Optistruct optimization? I want to run a size optimization, however, the material I am considering changes the Young's modulus with thickness. So my idea is to use Compose to make the Young's modulus as a function of thickness.

Thank you

]]>I've tried to use the array ".*" and the matrix "*" operator and in both cases the same message appears "Error: unsuported operation...".

]]>

I'm a new user of Compose (have lots of experience in Matlab and Hypermath though) and I am plotting some data. I am experiencing two problems:

1) There seems to be no legend handle. So, I cannot edit the font size of the legend in my script. Any idea how to do this (in a script, not by clicking on the legend and editing it manually)?

2) When I execute the following lines, the Ylabel completely disappears from the figure. Even when I save it, there is no (or only some of the pixels) Ylabel; it is shifted too much to the left. How can I move the ylabel (again, in a script, although I'm not even able to move it by mouse or so). Changing the position of the axes or the figure does not help and there is no 'Position' option in the label handle.

figure(1)

plot([1:9],[20:20:180])

set(gca,'FontSize',12)

ylabel('Reaction force [N]')

legend('test')

saveas(1,'testimg')

Thank you for replying.

]]>

I'm new to Compose and i have some questions, i hope u can help me out.

What is the equivalence for syms function (in Matlab) in Altair Compose? And how can I derivate symbolically in this software?

I'm testing this software and trying to get used to it, so i'm programming a simple Newton-Raphson method, this is the way i did it with matlab:

syms x

fx=input('Enter the function: ')

dfx=diff(fx);

E=1; e=0.0001; i=1;

Ai=zeros(3,1); Axr=zeros(3,1); AE=zeros(3,1);

xo=input('Initial value: ');

while E>e

fxp=subs(fx,xo);

dfxp=subs(dfx,xo);

xr=xo-fxp/dfxp;

E=abs((xr-xo)/xr);

xo=xr;

Ai(i)=i; Axr(i)=xr; AE(i)=E;

i=i+1;

end

Res=[Ai Axr AE]

and here it is the way i did it with compose:

f=@(x) exp(-x)-x;

df=@(x) -exp(-x)-1;

E=1; e=0.0001; i=1;

Ai=zeros(3,1); Ar=Ai; AE=Ai;

%xo=0;

xo=input('Initial value: ')

while E>e

fxp=f(xo);

dfxp=df(xo);

xr=xo-fxp/dfxp;

E=abs((xr-xo)/xr);

xo=xr;

Ai(i)=i; Ar(i)=xr; AE(i)=E;

i=i+1;

end

Res=[Ai Ar AE]

The questions are as stated above, because I want to differentiate any simple function I give as input.

btw, sorry for broken english.

]]>

The corner data takes into account the closest integration points in order to integrate and calculate the stress. We are not able to retrieve the results of integration points inside Compose, but only the stress of the centroid using commands such as readcae, readvector or readmultvectors.

I'm reading stress values from CAE file and writing in H3D file without corner data. For example, I have obtained the stresses of my model and I have written stresses (after post-processing) in H3D file with two matrix:

1. Element ID

2. Stress of the centroid

So I have the next question: it is possible view my results with corner data with only results on the element centroid in compose?

Thanks you very much in advance,

Best regards,

Adrián

]]>It seems hard to do only in Activate. Is it possible to call Activate from Compose? Or do you suggest any other way?

]]>

Let's say I am in directory C:\Test

This directory contains many different files including some H3D Files.

I want to create a list containing the names of these files only.

What is the best way to go about it?

Using 'ls' or 'system' can be used with the wildcards, but returns a lot of unwanted information as a string.

It is not very eays to filter this output.

I am looking for a command similar to 'glob' in TCL.

All I want is a list of files containing a specific extension to be returned.

]]>

is it possible to retrieve the Stress values in the material system in Compose, using the readvector/readmultivector?

The default is analysis system, but it depends on the node numbering sequence. I'd like to have it in my standard material system.

Thanks in advance,

]]>

I used the function ' readvectorbuilder', when I choose 1D strain from the panel, I couldn't select any CROD element that I have defined previously. (see the image below)

P.S: with H3D file it is possible to extract 1D strain of CROD

but i have to use the op2 file since it's nastran standard .

]]>