Um cristal é construído em um rascunho pendente: inicie-o, preencha-o com os setters, e Commit() valida tudo, constrói o cristal e o aplica como cristal atual em um único passo (a GUI e todos os simuladores abertos se atualizam, como ao carregar um arquivo CIF). Um Commit() que falha relata todos os erros de validação juntos, não muda nada e mantém o rascunho, que pode então ser corrigido e recommitado.
Função
Descrição
Crystal.BeginCreate(name)
Iniciar um rascunho para um cristal novo
Crystal.BeginEdit()
Iniciar um rascunho a partir do cristal atual (célula, grupo espacial, átomos e orientação são mantidos)
Crystal.LoadCifText(cifText)
Iniciar um rascunho a partir de texto CIF (o conteúdo de um arquivo .cif, não um caminho)
Crystal.SetName(name)
Renomear o rascunho
Crystal.SetCellInAng(a, b, c, alpha, beta, gamma)
Constantes de célula em Å e graus. Cada chamada substitui a célula inteira; argumentos omitidos são derivados das restrições do grupo espacial (para um cristal cúbico basta a), e valores explícitos que as contradizem geram erro
Crystal.SetSpaceGroup(symbol)
Grupo espacial por símbolo (HM curto/completo ou Hall; espaços e _ são ignorados). Acrescente a configuração ('Fd-3m:2', 'R-3c:H', 'P21/c:b1') quando o grupo tiver várias — símbolos ambíguos geram um erro listando os candidatos
Crystal.SetSpaceGroupByNumber(itNumber, setting)
Grupo espacial por número IT (1–230); setting ('1', '2', 'H', 'R', 'b1', …) escolhe entre várias configurações
Crystal.AddAtom(label, element, x, y, z, occ, bIso)
Adicionar um átomo da unidade assimétrica: símbolo do elemento, coordenadas fracionárias, ocupação (0 < occ ≤ 1, padrão 1) e B isotrópico em Ų (padrão 0). Posições equivalentes, letras de Wyckoff e multiplicidades são derivadas automaticamente
Após um Commit() bem-sucedido, o próximo BeginEdit() parte do cristal atualizado: as mudanças se acumulam — para varreduras em valores absolutos, leia os valores base antes do laço, como acima. Para registrar o cristal na lista de cristais, chame CrystalList.Add().
Definir a orientação por ângulos de Euler (radianos)
Dir.EulerInDegree(phi, theta, psi)
Definir a orientação por ângulos de Euler (graus)
Dir.EulerInDeg(phi, theta, psi)
Alias para EulerInDegree
Dir.Rotate(ax, ay, az, angle)
Girar em torno de um eixo arbitrário (radianos)
Dir.RotateInDeg(ax, ay, az, angle)
Girar em torno de um eixo arbitrário (graus)
Dir.RotateAroundAxis(u, v, w, angle)
Girar em torno do eixo de zona [uvw] (radianos)
Dir.RotateAroundAxisInDeg(u, v, w, angle)
Girar em torno do eixo de zona [uvw] (graus)
Dir.RotateAroundPlane(h, k, l, angle)
Girar em torno da normal ao plano (hkl) (radianos)
Dir.RotateAroundPlaneInDeg(h, k, l, angle)
Girar em torno da normal ao plano (hkl) (graus)
Dir.ProjectAlongPlane(h, k, l)
Definir a normal ao plano perpendicular à tela
Dir.ProjectAlongAxis(u, v, w)
Definir o eixo de zona perpendicular à tela
Dir.GetEuler()
Obter a orientação atual como ângulos de Euler Z-X-Z [phi, theta, psi] (radianos)
Dir.GetEulerInDeg()
Obter a orientação atual como ângulos de Euler Z-X-Z [phi, theta, psi] (graus)
Dir.GetRotationMatrix()
Obter a matriz de rotação atual como um array de nove elementos [R11, R12, R13, R21, R22, R23, R31, R32, R33] — a mesma convenção de SpotID.CandidateList()
Definir a orientação a partir de nove elementos da matriz de rotação (validados e reortonormalizados antes da aplicação)
Os ângulos de Euler não são únicos nas posições de bloqueio do cardan (θ = 0 ou 180°): GetEuler() após Euler() reproduz a mesma atitude, mas não necessariamente os mesmos números. Para salvar e restaurar a orientação com exatidão, use Dir.GetRotationMatrix() / Dir.SetRotationMatrix(). A convenção completa está descrita em Geometria de rotação.
Comanda o Spot ID v2 a partir de uma macro: carregar uma imagem ou uma lista de pontos, detectar os pontos, procurar orientações e ler os candidatos de volta, sem tocar na janela. FindSpots() e Identify() só retornam depois que o trabalho termina, portanto podem ser encadeados diretamente.
Carregar um arquivo como File > Load faz: .csv é lido como lista de pontos (uma imagem precisa ter sido carregada antes) e qualquer outra extensão como imagem de padrão de difração (dm3, dm4, mrc, ipa, tif e outros formatos suportados). Omita filename para abrir um diálogo de arquivo
SpotID.FindSpots()
Detectar os pontos da imagem carregada e ajustá-los, como faz o botão Find spots
SpotID.Identify()
Procurar orientações que expliquem os pontos detectados, como faz o botão Identify spots, e retornar o número de candidatos. Os cristais testados são os selecionados na lista de cristais da janela principal
SpotID.CandidateList()
Retornar a lista de orientações candidatas como texto CSV
SpotID.SpotList()
Retornar os pontos observados como texto CSV, com as mesmas colunas de File > Save. Combinado com File.SaveText(), gera um arquivo que LoadFile() consegue reler
CandidateList() fornece, para cada candidato: nome do cristal, os ângulos de Euler Z-X-Z (graus), os nove elementos R11–R33 da matriz de rotação (do referencial do cristal para o do laboratório, aplicada a vetores coluna), o resíduo quadrático médio (nm⁻²) e a atribuição dos pontos observados a índices hkl. Os candidatos vêm ordenados pelo número de pontos atribuídos (decrescente) e depois pelo resíduo (crescente). Os números são escritos na cultura invariante, então o separador decimal é sempre um ponto.
Comanda o visualizador de estrutura a partir de uma macro. SaveImage() e Export3DModel() abrem a janela primeiro quando necessário, porque o modelo 3D é construído quando a janela é exibida.
Função
Descrição
StructureViewer.Open()
Abrir a janela do visualizador de estrutura
StructureViewer.Close()
Fechar a janela do visualizador de estrutura
StructureViewer.SaveImage(filename)
Salvar a vista principal renderizada como PNG, no tamanho em pixels do campo Size (W×H); omita filename para abrir um diálogo
Exportar a estrutura exibida para impressão 3D, como Export 3D Model (3MF/STL) do menu File. A extensão decide o formato (.stl monocolor / .3mf colorido por elemento); apenas filename é obrigatório — os demais padrões são os do diálogo (maior dimensão 80 mm, arestas da célula ⌀2,4 mm, ligações engrossadas até ⌀1,2 mm). Com fixedScaleInMMperNm > 0 constroem-se vários modelos na mesma escala
Essas três classes de simulação de imagem compartilham muitos membros. Para evitar repetições, as tabelas abaixo usam marcadores de posição:
# : comum a HRTEM, STEM e Potential. Substitua # por HRTEM, STEM ou Potential (por exemplo, STEM.Simulate(), Potential.AccVol).
$ : comum apenas a HRTEM e STEM. Substitua $ por HRTEM ou STEM.
Os membros escritos com um nome de classe explícito (STEM.… / HRTEM.…) pertencem somente a essa classe. A classe Potential não adiciona membros próprios; ela usa apenas os membros #.