Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


robertavarela last won the day on March 24

robertavarela had the most liked content!

1 Follower

About robertavarela

  • Rank

Profile Information

  • Country
  • Are you University user?

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I'd like to share the seamless integration that Compose with other HyperWorks applications, such as HyperMesh and OptiStruct. In order to expose the Compose function to other HyperWorks applications, we need to register the function. This is done clicking on the right mouse button on Register Function in Compose: After this step, we may now see that the function has been registered under the same mouse click shown above under Show Registered Functions button. Once it is registered, we may now use it inside other HyperWorks softwares, and the function will be available without the need for closing and reopening the application of interest. Example in HyperMesh: Why Compose and HyperMesh? Matrix Browser queries and modifies HyperMesh and HyperView data entities without writing cumbersome TCL coding, along with a Math method developed in Compose. Example in HyperGraph: Why Compose and HyperGraph? Plotting capabilities of HyperGraph are expanded with Compose’s advanced functions and custom procedures developed by the user. Example in HyperView: Why Compose and HyperView? Advanced post-processing or special mathematical approaches may be applied directly on the model. Example in HyperStudy: Add a new output response Define a new expression Use your custom Compose function Why Compose and HyperStudy? User-defined functions to perform design exploration and optimization. Example in OptiStruct: Why Compose and OptiStruct? User-defined functions to perform optimization with DRESP3 card (desired response based on external files). Regards, Roberta
  2. I'd like to share the nice and slick synergy Compose has with Matrix Browser, a feature in HyperMesh to handle model data in table format. This is the typical use case when the model data will lead the process and Compose will play as the Math/Automation engine. Let’s assume that we have the model ExampleRib.fem (attached) and that we would like to get the central coordinates X, Y and Z of a few elements: In this example, I’d like to calculate the central distance of these elements to the point (0,0,0), which would be simply the square root of x²+y²+z². For that, I created a custom Compose function distZero (also attached): Which will receive as inputs from HyperMesh the coordinates X, Y and Z that I queried with Matrix Browser. In order to expose the Compose function to other HyperWorks applications, we need to register the function. This is done clicking on the right mouse button on Register Function in Compose: After this step, we may now see that the function has been registered under the same mouse click shown above under Show Registered Functions button. Once it is registered, we may now use it inside HyperMesh + Matrix Browser: The function will be available without the need for closing HyperMesh and reopening. Then we give the columns that will serve as arguments: And it's done! The custom Compose function calculated everything and the results are shown in a new column: Regards, Roberta ExampleRib.fem distZero.oml
  3. robertavarela


    Brahmadev, That is correct. We can read all kinds of result files, like .h3d (OptiStruct), .op2 (Nastran), .odb (Abaqus) and so on. All entities and results inside these binary files are automatically recognized in Compose with functions such as readcae or readmultvectors. Also since we have plotting capabilities, you may perform several calculations with the data inside these results files and then plot it somehow. Regards, Roberta
  4. robertavarela

    writing a text file from compose

    Saransakthi, Using the syntax I mentioned, you may put your frequency variable in variable1 and your amplitude in variable2, adjusting the decimal precision as you wish. After printing everything in your file using fprintf, it's a good practice to close your files (using fclose function in thi case) Regards, Roberta
  5. robertavarela

    Subplots in uicontrol

    Hello, Could anyone help me to add subplots in the uicontrol? I was able to position a normal plot on it, but if I try to create a subplot, I lose my previous interfaces (buttons, texts etc). Thanks, Roberta
  6. robertavarela

    writing a text file from compose

    You may also print your variables on the text file that you just created and opened: fprintf(fidout, 'Example of mixing text and variables: %.3f %.2f %8d\n', variable1, variable2, variable3); Where variable1 will be written with 3 decimal digits, variable2 with 2 decimal digits and variable3 as an integer. The command \n will break the line after you write all content. And you don't need to worry if your newtxtfile.txt is already in your folder... Once you create it again with Compose, it will overwrite the previous file, so you should not expect any kind of error saying that the file already exists. Regards, Roberta
  7. robertavarela

    FEKO - MATLAB communication by DOS commands

    Nikolas, You would use either dos or system function in order to call .bat scripts. Please find attached a sample Compose script that I wrote as a part of a bigger workflow that calls CADFEKO in batch. Regards, Roberta CADFEKOInvoke.oml
  8. robertavarela

    FEKO - MATLAB communication by DOS commands

    Nikolas, What could be done in this case to use FEKO + Compose would be to run a Lua script while calling POSTFEKO in batch. This Lua script would have not more than a few lines which would be standard for any model whose results you'd like to extract afterwards. The workflow I'd suggest in this case would be: 1) To do everything in batch in Compose 2) To ask Compose to write the Lua script which will be called along with POSTFEKO (passing the output file name at the same time, so POSTFEKO will understand which file it will refer to) 3) To create a while loop in Compose to keep searching for the .tr file that will be exported from this Lua script. Once the .tr file is found in the folder, your Compose function may carry on doing what it needs to do and accessing this .tr file to fetch the results. Regards, Roberta
  9. robertavarela

    Register Compose Function Hyperstudy

    Hello, In Compose, you must select the function's name and then hit the right mouse button. There is an option Register Function where you should click - once you did this, the Compose function is available to be used not only in HyperStudy, but also in other HW applications, such as HyperMesh and HyperView. Let me know if this does not work out for you. Regards, Roberta
  10. robertavarela

    Open a .txt file scripting

    Hello, Could you please share you text file 'nodes.txt'? Using fopen command is enough to import the file, apparently there is a problem with your text file. That is why it would be good if you could share it here. Regards, Roberta
  11. robertavarela


    Brahmadev, Compose is a multilanguague (OML, Python and TCL) environment for doing Math calculations, data manipulating and visualizing. This includes CAE output files (.h3d, .op2, .odb...) or test results (.ascii, .uff, .unv....). With Compose you can program using the languages that I just mentined and debug your scripts. There are bridges between these languages too (OML-Python and OML-TCL) that gives you much flexibility to work with the best of each language. Since Compose works with TCL as well, you can write your scripts for HyperMesh with it, or even more: you may leverage the multilanguage possibilities of Compose. An example: let's say you have a CAE result file and would like to pass information from it to HyperMesh, in order to create load collectors cards, for example. You can use OML (Compose's primary language) to get the CAE result data and then pass these variables to the TCL environment using functions such as exporttotcl. Then you call your TCL script with evaltclscript and use the variables that have just been passed. Regards, Roberta
  12. robertavarela

    Unknown value using compose

    Arul, I've just tested it and found out that this error appears in v2017.3, but not in 2019. Please download the latest version. Regards, Roberta
  13. robertavarela

    Usage of CPU and ram memory

    Hello, all! As I am running a routine with a large number of loops, is there a way of using all the possible performance of a certain machine in Compose? There is a code which is consuming only around 33% of CPU and 120 Mb ram, but the computer has much more memory available. Many thanks, Roberta
  14. Hello! The definition of stress is on elements per se, but the usage of corner data is an abstraction which is present in HyperView but not in Compose. I will make myself clear with the image that I attached. 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. Regards, Roberta
  15. Hello, Please find attached a similar example that I created with the same purposes. There are slides explaining the workflow as well as a video about it at https://web2.altairhyperworks.com/altair-for-aerospace-learning-center. The idea is to: 1. Output from the CAE analysis is read with readmultvectors 2. A certain action is performed on the element stresses (plasticity corection) 3. An output which is readable in HyperView is created This output (.hwascii) is nothing more than a text file with headers. These headers make the file readable in Hyperview and therefore you could plot the contour there. Regards, Roberta CAEDemoCompose_ForCustomers.zip