Aplicação da linguagem Python no Abaqus --- 2.2.2 Tipos de dados na interface de script Abaqus (matriz, tipo booleano e sequência)

Os tipos de dados da interface de script Abaqus são divididos em:
1. Constante simbólica (constante simbólica)
2. Repositório (repositório)
3. Matriz (matriz)
4. Tipo booleano (booleano)
5. Sequência (sequência)

O artigo anterior descreveu constantes simbólicas e bibliotecas.
Este artigo falará sobre os outros três arrays, tipos booleanos e sequências.
1. Arrays (arrays)
Um array é um contêiner indexado, semelhante a um array em uma sequência.
Tal como: matriz de nós: MeshNodeArrays, matriz de unidade: MeshElementArrays

2. Tipo booleano (Booleanos)
O tipo booleano na linguagem Python
define dois valores booleanos para o <type 'bool'> Tipo booleano: True e False
A interface de script Abaqus também define objetos booleanos (objetos booleanos)
por constantes de símbolo Derivado do objeto (objetos SymbolicConstant), seu valor é ON e OFF,
como: noPartsInputFile é um membro do objeto Model, indica se as informações de peças e montagem devem ser gravadas no arquivo INP, o tipo é <type'AbaqusBoolean' >
Método de uso do tipo booleano Semelhante às constantes simbólicas, uma vez que o tipo booleano contém um relacionamento de julgamento, ele pode ser usado para testar o valor do tipo booleano. Por exemplo:
o objeto viewport contém um membro titleBar, que pertence ao tipo booleano e é usado para determinar se a barra de título deve ser exibida

if vp.titleBar:    #vp代表一个视口对象
	print("The title bar will be displayed.")

A primeira linha do código avalia se vp.titleBar é positivo. Se o resultado do julgamento for ON, execute a segunda linha do código.
Ao escrever scripts, os leitores devem evitar valores booleanos incertos

newModel = mdb.ModelFromInputFile(name = "beamTutorial", 
inputFileName = "Deform")
newModel.setValues(noPartsInputFile = False)
print(newModel.noPartsInputFile)

A primeira linha de código chama o construtor ModelFromInputFile para criar um novo modelo chamado beamTutorial e o atribui à variável newModel. A segunda
linha de código usa o método setValues ​​​​para definir noPartsInputFile como False.
A terceira linha de código gera o booleano valor de noPartsInputFile.
A quarta linha do código resulta OFF, no entanto, o final do código indica claramente se deve escrever informações de peças e montagem, o que é fácil de causar confusão ao ler o script. Para evitar confusão, você pode usar
branch declarações de julgamento para executar códigos diferentes de acordo com diferentes valores booleanos. Os valores booleanos de teste devem evitar 0, OFF ou False e outros autovalores

if newModel.noPartsInputFile:
	print("Input file will be written without parts and assemblies")
else:
	print("Input file will be written with parts and assemblies")

A primeira linha do código avalia o valor booleano de newModel.noPartsInputFile, se o resultado do julgamento for ON, executa a segunda linha do código e, se estiver OFF, executa a quarta linha do código.
Anexo: A nova versão do software Abaqus não possui o tipo Boolean Abaqus, os leitores precisam utilizar o tipo Boolean na linguagem Python

3. Sequências
Os parâmetros de alguns métodos da interface de script Abaqus são sequências compostas de dados de ponto flutuante ou inteiros.
Por exemplo: no módulo Property do Abaqus/CAE, a caixa de diálogo para definição do módulo de elasticidade e da razão de Poisson que variam com a temperatura é mostrada na figura: o software abaqus.rpy ou PythonReader registrará os seguintes comandos equivalentes à caixa de diálogo
insira a descrição da imagem aqui
:

mdb.models["Model-1"].materials["Steel"].Elastic(temperatureDependency
= ON, table = ((200000000000.0, 0.3, 0.0), (210000000000.0, 0.3, 100.0), 
(220000000000.0, 0.3, 200.0), (230000000000.0, 0.3, 300.0)))

Além disso, a interface do script Abaqus também define sequências especializadas compostas por objetos do mesmo tipo, incluindo:
1) Sequências GeomSequence compostas por objetos geométricos (vértices, arestas, etc.)
2) Sequências MeshSequence compostas por nós ou unidades
3) Superfícies compostas do SurfSequence
O código a seguir cria uma parte do corpo deformável 3D chamada Switch extrudando um esboço retangular (70×70) (espessura 20):

from abaqusConstants import *
mdb.Model("Body")
mySketch = mdb.models["Body"].ConstrainedSketch(name = "__profile__", 
sheetSize = 200.0)
mySketch.rectangle(point1 = (0.0, 0.0), point2 = (70.0, 70.0))
switch = mdb.models["Body"].Part(name = "Switch", dimensionality = 
THREE_D, type = DEFORMABLE_BODY)
switch.BaseSolidExtrude(sketch = mySketch, depth = 20.0)

A seguir é apresentado o método de consulta dos membros e tipos do objeto Switch na interface de linha de comando
1) Chame o método __members__ para consultar todos os membros do componente 3D Switch

print(mdb.models["Body"].parts["Switch"].__members__)

2) Exibir informações sobre a sequência de arestas:

print("Single edge type = ", type(switch.edges[0]))

Esta linha de código produzirá o tipo da primeira borda do objeto switch. Se houver apenas uma aresta, o tipo de saída será Borda.

print("Edge sequence type = ", type(switch.edges))

Esta linha de código produzirá os tipos de todas as arestas do switch e o resultado de saída será EdgeArray

print("Members of edge sequence =", switch.edges.__members__)

Esta linha de código produzirá todos os membros da borda, o resultado é pointsOn

print("Number of edges in sequence =", len(switch.edges))

Esta linha de código produzirá o número de elementos na sequência Edges e o resultado de saída será 12.
Existem várias maneiras de consultar as propriedades do objeto da
seguinte forma: 1) Chame o método type() para consultar o tipo de dados
2 ) Chame o método __members__ para consultar todos os membros
3) Chame o método _ _methods__ método de consulta
4) Chame o método del para excluir o objeto

Supongo que te gusta

Origin blog.csdn.net/qq_35412059/article/details/105558255
Recomendado
Clasificación