1
1
from __future__ import annotations
2
2
3
- from typing_extensions import Literal
3
+ import copy
4
+
5
+ from typing_extensions import Literal , overload
4
6
5
7
from abqpy .decorators import abaqus_class_doc , abaqus_method_doc
6
8
@@ -22,6 +24,7 @@ class Mdb(AcisMdb, JobMdb):
22
24
mdb
23
25
"""
24
26
27
+ @overload
25
28
@abaqus_method_doc
26
29
def Model (
27
30
self ,
@@ -78,16 +81,45 @@ def Model(
78
81
model: Model
79
82
A Model object
80
83
"""
81
- self .models [name ] = model = Model (
82
- name ,
83
- description ,
84
- stefanBoltzmann ,
85
- absoluteZero ,
86
- waveFormulation ,
87
- modelType ,
88
- universalGas ,
89
- copyConstraints ,
90
- copyConnectors ,
91
- copyInteractions ,
92
- )
84
+
85
+ @overload
86
+ @abaqus_method_doc
87
+ def Model (self , name : str , objectToCopy : Model ) -> Model :
88
+ """This method creates a Model object.
89
+
90
+ .. note::
91
+ This function can be accessed by::
92
+
93
+ mdb.Model
94
+
95
+ Parameters
96
+ ----------
97
+ name
98
+ A String specifying the repository key.
99
+ objectToCopy
100
+ A Model object to copy.
101
+ """
102
+
103
+ @abaqus_method_doc
104
+ def Model (self , name : str , * args , ** kwargs ) -> Model :
105
+ """This method creates a Model object.
106
+
107
+ .. note::
108
+ This function can be accessed by::
109
+
110
+ mdb.Model
111
+
112
+ Parameters
113
+ ----------
114
+ name
115
+ A String specifying the repository key.
116
+ args, kwargs
117
+ Positional and keyword arguments to be passed to the Model object.
118
+ """
119
+ if len (args ) == 1 and isinstance (args [0 ], Model ):
120
+ self .models [name ] = model = copy .deepcopy (args [0 ])
121
+ elif "objectToCopy" in kwargs and isinstance (kwargs ["objectToCopy" ], Model ):
122
+ self .models [name ] = model = copy .deepcopy (kwargs ["objectToCopy" ])
123
+ else :
124
+ self .models [name ] = model = Model (name , * args , ** kwargs )
93
125
return model
0 commit comments