# \*TRANSFORM (R and C)

**URL:** <https://prepomax.discourse.group/t/transform-r-and-c/499>\
**Category:** Feature Requests\
**Created:** [November 2, 2022, 8:36am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499 "2022-11-02T08:36:07Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [November 2, 2022, 8:36am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/1 "2022-11-02T08:36:07Z")

</div>

Hi,  
I would like to see the implementation of the two types of \*TRANSFORM (R and C). It would help the user to set up frictionless supports or the 3D solid axisymmetric slice between others, extending considerably the Prepomax BC options.  
Thanks

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [November 2, 2022, 9:46am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/2 "2022-11-02T09:46:52Z")

</div>

Indeed, it would be very useful. Other applications of user-defined coordinate systems (\*ORIENTATION and transforming the results) are also important but would require separate implementation (only the tool to define a new CSYS could be the same).

As a side note, CalculiX supports only rectangular and cylindrical coordinate systems while Abaqus supports also spherical ones but they are uncommon.

---

<div class="post-metadata">

**Author:** ![GB61](https://avatars.discourse-cdn.com/v4/letter/g/258eb7/32.png) [@GB61](https://prepomax.discourse.group/u/GB61)\
**Post date:** [November 11, 2022, 5:00pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/3 "2022-11-11T17:00:12Z")

</div>

It is possible to use \*TRANSFORM by using the “Calculix keyword editor” that is accessed by right clicking on the top level model in the PrePoMax FE Model tree. The following screenshots show how I used \*TRANSFORM to restrict motion of a cylinder in the tangential and axial directions while allowing expansion in the radial direction. Inputs for the \*TRANSFORM keyword are in the Calculix manual.

![Node Set definition](https://global.discourse-cdn.com/free1/uploads/prepomax/original/1X/aa94078a91530ce6c24031b90eb240901e681b7b.png)

 ![Keyword Editor-e2](https://global.discourse-cdn.com/free1/uploads/prepomax/original/1X/72f28ffb98dd40f2fb21bc12fae2944351d75dd5.png)

 ![Restraint definition-e](https://global.discourse-cdn.com/free1/uploads/prepomax/original/1X/d855b159be2ff69daf52489a8aa392519b954000.png)

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [November 11, 2022, 11:28pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/4 "2022-11-11T23:28:29Z")

</div>

Thank you very much GB61 👌

---

<div class="post-metadata">

**Author:** ![celikan](https://avatars.discourse-cdn.com/v4/letter/c/f05b48/32.png) [@celikan](https://prepomax.discourse.group/u/celikan)\
**Post date:** [December 5, 2022, 11:04am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/5 "2022-12-05T11:04:12Z")

</div>

Proposal regarding Calculix keywords: on the keyword tree, user added keywords are in red colours, which make me confusing in the beginning because I thought that there is something wrong/missing on the keyword itself. I propose to make text in different colour, not linked classically with an “Error” colour.  
Hope my proposal is clear.

 ![editor](https://global.discourse-cdn.com/free1/uploads/prepomax/original/1X/5d3470e044ea122a1f2cb4fa5091f13d45d0c767.jpeg)

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [December 5, 2022, 1:51pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/6 "2022-12-05T13:51:18Z")

</div>

I agree. I will think about other default colours. The coloured text editor is very solid at the moment and I already found a better solution. When I will find time to replace it I will think about the colours.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 17, 2023, 3:20pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/7 "2023-02-17T15:20:25Z")

</div>

displaying node and element local axes also common in many FEA software, it can be useful to visualize for some assignment it was properly defined or not.

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [April 27, 2023, 1:31pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/8 "2023-04-27T13:31:31Z")

</div>

Hi,

This is an example on how to prepare a frictionless support on a face with arbitrary orientation.  
I think it complements the cylindrical example from GB61 with the TYPE=R option.

Frictionless suport on an arbitrary oriented flat face.

1- Select three points on the face of interest A, B and C as separated as possible (for better accuracy).  
2- Compute the cross product of AB x AC = v1_i + v2_j + v3_k  
3- Normalize the resultant vector . n1_i + n2_j + n3_k. (Not imperative but more clean and readable)  
4- Create a node set of the nodes on that Face and name it. For example : NFace  
5- Write a custom Transform card like:

\*TRANSFORM  
n1,n2,n3,-n2,n1,0

6- Constrain the first degree of freedom of NFace as usual on the BC GUI.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/f/f2521b4da91300e5c2ad9ce74a88fd3f5a604df9.png)

NOTE: Be sure your numbers do not exceed 20 characters long.

Example included.  
[Frictionless support.pmx](https://prepomax.discourse.group/uploads/short-url/weQbNKH5lfROeLnbH1IXd9RRQ6U.pmx) (411.1 KB)

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [April 27, 2023, 8:02pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/9 "2023-04-27T20:02:14Z")

</div>

Probably a ‘Frictionless Support’ names for sliding along normal planes may lead to confusion for many user. It s not really clear since frictionless contact also available, however the behaviour and workflow is different.

It seems a general and common "Transform Nodes’ names still prefer. When both are still interested to implement, maybe "Sliding Planes’ is more appropriate for these support boundary condition types.

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [April 27, 2023, 10:14pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/10 "2023-04-27T22:14:35Z")

</div>

> [@synt](#):
>
> **"Sliding Planes’** is more appropriate for these **support**

Or even sliding…support?¿?. I don’t really mind.  
You have forgot your beginnings synt. 🙂 Some people are struggling and asking for it so it might not be so trivial for some users.  
The cross product could be in fact be substituted by the normal to the surface if available.  
This Sliding Planes is not so easy when combined with Rigid Body and shells.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [April 28, 2023, 11:36am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/11 "2023-04-28T11:36:53Z")

</div>

> [@ANYS](#):
>
> This Sliding Planes is not so easy when combined with Rigid Body and shells.

The workflow may separated, for solid element the plane can be selecting based on surface. It may group of face on flat or curved position. Rigidbody constraint, reference nodes and transform function can be generated automatically.

When at work in shell models, predefined three point of node groups selected can be use as plane definition, an option of curved or flat movement also possible to implement. Centér point as reference node is requires to be precalculate in special case of sliding along curves.

I’m only giving a personal opinions regarding to the names. Still thinking a ‘Frictionless’ word or names is commonly elated to contact and may lead to confusion. Prefer the names to be ‘Sliding Plane’ or ‘Sliding Support’ or any appropriated names e g ‘Sliding Constraint’

---

<div class="post-metadata">

**Author:** ![imgprojts](https://avatars.discourse-cdn.com/v4/letter/i/258eb7/32.png) [@imgprojts](https://prepomax.discourse.group/u/imgprojts)\
**Post date:** [September 1, 2023, 3:53pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/12 "2023-09-01T15:53:30Z")

</div>

This was very helpful to get me going. Thanks for posting!

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [March 17, 2024, 6:52am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/13 "2024-03-17T06:52:26Z")

</div>

HI,

I have revisited this post and my example file doesn’t work. I don’t remember having any issue with that. Any idea what’s wrong.?. I’m using last v2.0.7 with PARDISO

PREPOMAX\PrePoMax v2.0.7 dev\Solver\ccx\_dynamic.exe

Analisys seems to finish and immediatly after that it shows a job failed.

```auto
 Calculating the eigenvalues and the eigenmodes

U^T*M*U=0.000000 for eigenmode -21
U^T*M*U=0.000000 for eigenmode -61
U^T*M*U=0.000000 for eigenmode 7
U^T*M*U=0.000000 for eigenmode 9
U^T*M*U=0.000000 for eigenmode 1

 Job finished

________________________________________

Total CalculiX Time: 0.854273
________________________________________

 Job failed - no results exist.

 Process elapsed time: 0.892 s

```

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [March 17, 2024, 8:42am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/14 "2024-03-17T08:42:26Z")

</div>

you have set zero for upper and lower bound. Should it be possible?

![h](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/d/d652066068031f0ee89c53686428e15aff15003c.png)

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [March 17, 2024, 9:04am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/15 "2024-03-17T09:04:46Z")

</div>

The model is likely from a version in which there was no option to specify the frequency range.

---

<div class="post-metadata">

**Author:** ![ANYS](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/anys/32/7737_2.png) [@ANYS](https://prepomax.discourse.group/u/ANYS)\
**Post date:** [March 17, 2024, 9:43am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/16 "2024-03-17T09:43:04Z")

</div>

It’s old yes. I have reset the analisys and create a new one from zero and then it works again.

Thanks.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [March 20, 2024, 2:39pm UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/17 "2024-03-20T14:39:10Z")

</div>

> [@Gunnar](#):
>
> you have set zero for upper and lower bound. Should it be possible?
> 
> ![h](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/d/d652066068031f0ee89c53686428e15aff15003c.png)

The default settings are obviously not set correctly, when reading an old file format.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 15, 2024, 9:33am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/18 "2024-10-15T09:33:46Z")

</div>

Closing as completed in v2.2.0.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 15, 2024, 9:33am UTC](https://prepomax.discourse.group/t/transform-r-and-c/499/19 "2024-10-15T09:33:49Z")

</div>


