Applying a load to a datum point using findAt
Applying a load to a datum point using findAt
(OP)
Hello,
I am studying tree branches with Abaqus and my model is a wire connected by 3D datum points. To represent leaves, a concentrated force is applied to that point on the branch, which is an x,y,z coordinate that already exists in the model. Modeling these tree branches is very time consuming, so I am trying to automate the process with the help of MATLAB.
My problem is applying the concentrated force with the findAt command. The error I get is that Abaqus can't find the geometric entity for each load at it's respective coordinate, even though the correct coordinates for the datum point are entered. An example of my code to apply a load is:
mdb.models['Model-1'].rootAssembly.Set(name='Set-1', vertices=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].vertices.findAt
(((0.544,0.134,0.165),)))
mdb.models['Model-1'].ConcentratedForce(cf3=-0.00981, createStepName='Step-1',
distributionType=UNIFORM, field=' ', localCsys=None, name='P11', region=
mdb.models['Model-1'].rootAssembly.sets['Set-1'])
My theory is that with findAt, Abaqus can't locate the exact datum point because of the connecting wires at each end.
I have been stuck for a week or two now, and with thorough searching through different forums and through the Abaqus Scripting Reference Manual, I can't find a solution.
Any help would be greatly appreciated - Thank you in advance!
I am studying tree branches with Abaqus and my model is a wire connected by 3D datum points. To represent leaves, a concentrated force is applied to that point on the branch, which is an x,y,z coordinate that already exists in the model. Modeling these tree branches is very time consuming, so I am trying to automate the process with the help of MATLAB.
My problem is applying the concentrated force with the findAt command. The error I get is that Abaqus can't find the geometric entity for each load at it's respective coordinate, even though the correct coordinates for the datum point are entered. An example of my code to apply a load is:
mdb.models['Model-1'].rootAssembly.Set(name='Set-1', vertices=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].vertices.findAt
(((0.544,0.134,0.165),)))
mdb.models['Model-1'].ConcentratedForce(cf3=-0.00981, createStepName='Step-1',
distributionType=UNIFORM, field=' ', localCsys=None, name='P11', region=
mdb.models['Model-1'].rootAssembly.sets['Set-1'])
My theory is that with findAt, Abaqus can't locate the exact datum point because of the connecting wires at each end.
I have been stuck for a week or two now, and with thorough searching through different forums and through the Abaqus Scripting Reference Manual, I can't find a solution.
Any help would be greatly appreciated - Thank you in advance!





RE: Applying a load to a datum point using findAt
You can apply point load to real geometric points, reference nodes or nodes of your mesh.
When you want to have your definitions on the geometry (which is recommended), then you could partition your geometry to get a geometric point at the desired location and use that one.
RE: Applying a load to a datum point using findAt
Anyway, I want to apply the load to it's real geometric point. The findAt command will not find the geometric point. The error I get is that Abaqus can not find the "geometric entity at (x.x,x.x,x.x)" when the geometric point does exist. Like I said before, my model consists of 3D points, connected by wires. Is there any reason why I cannot use the findAt command to apply the load to the geometric point?
Thank you for your help, and thank you for clearing up that confusion for me.
RE: Applying a load to a datum point using findAt
CODE -->
RE: Applying a load to a datum point using findAt
The loads are in the Abaqus file, except it says "the set 'Set-x' which is associated with the region to which the selected load is applied, has been suppressed, deleted, renamed, or excluded or is a part of a reference representation..."
The wire geometry for the branches are somewhat complex and there are usually about a minimum of 80 datum points with wires connecting them.
For some reason, I can successfully use the findAt command to apply a boundary condition, which is the first geometric point, but I can't use it when applying a load.
I still am not sure where to go from here. Maybe the structure of my script is wrong and I have just not realized.
RE: Applying a load to a datum point using findAt
RE: Applying a load to a datum point using findAt
I have to thank you, because if it wasn't for you, I would have never of stumbled upon that. I've been working on this for a few weeks now!