-
-
March 20, 2024 at 1:30 pmTirtharaj BanerjeeSubscriber
Hello Sir,
I need to find three dimensional micromovements of a hip stem with respect to bone. Ansys provides in-built option (SLID COMMAND) for evaluating sliding distance. But the software treats it as a scalar quantity, and I need all the X, Y, Z micromovement values.
What I have done so far...
I have identified the target node IDs that are matched with the contact node IDs by using a custom-written python script. Now, I subtracted the target directional deformation from contact directional deformation per each matched node and got deltaX, deltaY, deltaZ values. I thought this would give the three-dimensional micromovement values per each node. But, when I took resultant (sqrt(deltaX^2 + deltaY^2 + deltaZ^2)) of these directional deformation values, it did not match with the sliding distances readily available as an in-built option. I have also combined sliding distance and gap in various ways, but none of them worked.
Please let me know where I am going wrong.
Any suggestions regarding any methods are truly helpful. Thanks in advance.
-
March 21, 2024 at 9:10 amRahul KumbharAnsys Employee
Hi Tirtharaj,
Â
It appears the contact can only output the vector sum. You may have to use displacement of individual points to get the X, Y, Z directional sliding.
-
March 21, 2024 at 9:46 ammjmiddleAnsys Employee
CONTA174 has TASS and TASR for sliding in contact R and S directions. See the following command snippet. It's probably not the best way since I did an arithmetic average to get an element value. R and S directions can be different for every contact element:
! Turn on "Analysis Settings > Output Controls > Contact miscellaneous"
! "contact_results" should be a named selection containing "contact" faces not target faces.
! nonlinear contacts will only have contacting area where status is sliding or sticking
! sliding and sticking regions will also have nonzero contact pressure.
! This snippet gets values at nodes (might be averaged from element centroid). It then averages by just adding the 4 nodes and dividing by 4.
! The pletab then averages element values to nodes for contour display. Â There is probably a better way than all this averaging.
! Maybe just put nodal values to a nodal result quantity: *VPUT, then use a User Defined Result to plot that result quantity
! You could alternatively just plot a user defined result in Mechanical, such as CONTNMISC17 to get R direction sliding on only I nodes (no averaging for connected elements)./post1
cmsel,s,contact_results        ! contact_results should be a named selection containing contact faces (1 side)
esln,s,1,active            ! contact elements will not be in a component so select attached elements
set,last
etable,sta,cont,stat          ! It also gets inactive contact side from the symmetric contacts, so get status
esel,u,etab,sta,0,0 Â Â Â Â Â Â Â Â Â ! remove elements with contact status = 0, which is for inactive and far open
etable,eras              ! erase entire etable to clear data from possible previous calls to etable command
esel,r,enam,,174 Â Â Â Â Â Â Â Â Â Â Â ! may need to elliminate any other connected types, such as beams, mpc184
                   ! If selecting all contacts, use esel,s,enam,,174 and delete previous commands through cmsel
                   ! can also just get contact using a command snippet under the contact, mcid = cid, then use esel,s,type,,mcid under Solution! sliding distance in S direction
*do,i,1,4
 etable,sslide%i%,nmisc,i+20     ! etable sequence numbers for tass at each node 21,22,23,24 (I,J,K,L)
*enddo
sadd,temp1,sslide1,sslide2
sadd,temp2,sslide3,sslide4
sadd,sslidet,temp1,temp2
smult,sslide,sslidet,,0.25! sliding distance in R direction
*do,i,1,4
 etable,rslide%i%,nmisc,i+16     ! etable sequence numbers for tasr at each node 17,18,19,20 (I,J,K,L)
*enddo
sadd,temp1,rslide1,rslide2
sadd,temp2,rslide3,rslide4
sadd,rslidet,temp1,temp2
smult,rslide,rslidet,,0.25/view,1,1,1,1 Â Â Â Â Â Â Â Â Â Â Â Â ! Set isometric view
/ang,1
/auto,1 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ! fit to screen
/show,png
pldisp,1 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ! display both displaced and undisplaced model. use /PLOPTS for other contour display options
pletab,sslide,avg
pletab,rslide,avg
! need to show coordinate system and undeformed model -
March 21, 2024 at 10:01 ammjmiddleAnsys Employee
You can use the nmisc values in APDL and write to a file (*cfopen, *vwrite), and use *get command to get node IDs of the elements I,J,K,L nodes.
*get,node_I,ELEM,element_ID,node,1
*get,node_J,ELEM,element_ID,node,2
*get,node_K,ELEM,element_ID,node,3
*get,node_L,ELEM,element_ID,node,4But I'm not sure how to get the R and S directions for each element in global CS vectors. Elements can have curvature so these may even be different at each node when converted to a global CS vector.
Â
-
March 22, 2024 at 11:47 amTirtharaj BanerjeeSubscriber
Thanks for the reply.
Please let me know whether I can do it in a relatively easy manner. My idea is to export the STL file of total deformation result of the contacting bone as well as the stem. Then I need to find the nodal coordinates for both the STLs. Then I'll check which nodal coordinates matched (not exactly, but let's say, upto 2 or 3 decimal places). I'll know that those nodes actually match, i.e., makes the nonlinear contact. Now, I'll select those nodes using mesh ID in workbench, and find directional deformations in all three directions. Now I'll subtract the respective coordinates to get delta X, delta Y and delta Z. These are the components of micromotion. If I take vector sum, it should be the same as the readily available sliding distances.
Please inform if I am incorporating any mistake? Or, if I can find it using the directional deformations in some other way, please let me know.
Thanks and Regards -
March 23, 2024 at 2:16 ammjmiddleAnsys Employee
Instead of using your comarison methods to get nodes that have moved over a certain difference, you could use NSEL command:
NSEL,S,CONT,SLIDE,min_distance
-
- The topic ‘Need micromovement in X, Y and Z directions’ is closed to new replies.
- How to apply Compression-only Support?
- At least one body has been found to have only 1 element in at least 2 directions
- Error when opening saved Workbench project
- Script Error Code:800a000d
- Elastic limit load, Elastic-plastic limit load
- Image to file in Mechanical is bugged and does not show text
- Element has excessive thickness change, distortion, is turning inside out
-
1762
-
635
-
599
-
591
-
366
© 2025 Copyright ANSYS, Inc. All rights reserved.