Script Spaceclaim

77 views
Skip to first unread message

André Luiz

unread,
Mar 20, 2021, 8:36:30 PM3/20/21
to Python Brasil
Boa tarde pessoal, eu não conheço muito de programação em Python, na verdade quase nada. Mas em um trabalho para a faculdade me indicaram usar scripts no Spaceclaim.
O script consiste em pegar coordenadas da posição de esferas (X,Y, Z) e o raio, de uma simulação com um software que trabalha com Método dos elementos discretos e criar uma geometria no SpaceClaim para posterior simulação (CFD). Em algumas pesquisas na net encontrei dois códigos prontos e estou tentando adaptar para meu caso. Já consegui contornar um erro vasculhando nos Fóruns, mas agora estou em um que não to conseguindo desenvolver e entender o que é.

# Python Script, API Version = V17

# User Inputs
fid = open("C:\Users\nabuc\Desktop\Spaceclaim.csv",'r')
Rad = 0.019
#Radius in mm
# Create Sphere
for line in fid:
    line = line.split(',')
    x = float(line[0])
    y = float(line[1])
    z = float(line[2])
    SphereBody.Create(Point.Create(MM(x), MM(y), MM(z)), Point.Create(MM(x+Rad), MM(y), MM(z)), ExtrudeType.None, Info2)
    mode = InteractionMode.Solid
    result = ViewHelper.SetViewMode(mode, Info3)
fid.close()

esse é o primeiro código, que me retorna o seguinte erro: 

fid = open("C:\Users\nabuc\Desktop\Spaceclaim.csv",'r')
Caracteres inválidos no caminho.
Stack Trace:
Line 4: fid = open("C:\Users\nabuc\Desktop\Spaceclaim.csv",'r')

já no segundo código:

# Python Script, API Version = V17

ClearAll()

path = r"C:\Users\nabuc\Desktop\Simulacoes 2021\3D\Cubo z-est\Spaceclaim.csv"

# Load file

sphere_dims = []

with open(path,'r') as f:

    sphere_dims = f.readlines()

for line in sphere_dims:

    # For each line we divide number by ;

    line = line.split(',')

    line = [float(val) for val in line]

    # Créer une sphère

    SphereBody.Create(Point.Create(MM(line[0]), MM(line[1]), MM(line[2])), Point.Create(MM(line[3]), MM(line[4]), MM(line[5])), ExtrudeType.None, Info1)

    # EndBlock

com o seguinte erro:

index out of range: 4
Stack Trace:
Line 25:     SphereBody.Create(Point.Create(MM(line[0]), MM(line[1]), MM(line[2])), Point.Create(MM(line[3]), MM(line[4]), MM(line[5])), ExtrudeType.None, Info1)

Se alguém conseguir entender  e puder me ajudar, agradeço muito. 

Desde já uma boa tarde a todos.


Anderson Humberto Meneghesso

unread,
Mar 21, 2021, 1:20:10 PM3/21/21
to Python Brasil
nesse trecho:

fid = open("C:\Users\nabuc\Desktop\Spaceclaim.csv",'r')
Caracteres inválidos no caminho.

o problema é o caracter de "escape" "\"
tente assim (com \\):

fid = open("C:\\Users\\nabuc\\Desktop\\Spaceclaim.csv",'r')

André Luiz

unread,
Mar 22, 2021, 9:05:22 PM3/22/21
to Python Brasil
Deu certinho, essa linha foi resolvida. Agora aparece erro em outra linha:

name 'Info2' is not defined
Stack Trace:
Line 13:     SphereBody.Create(Point.Create(MM(x), MM(y), MM(z)), Point.Create(MM(x+Rad), MM(y), MM(z)), ExtrudeType.None, Info2)
Reply all
Reply to author
Forward
0 new messages