Un cristal se construye en un borrador pendiente: se inicia, se rellena con los setters y Commit() lo valida todo, construye el cristal y lo aplica como cristal actual en un solo paso (la GUI y todos los simuladores abiertos se actualizan, como al cargar un archivo CIF). Un Commit() fallido informa de todos los errores de validación juntos, no cambia nada y conserva el borrador, de modo que puede corregirse y volver a hacer Commit.
Función
Descripción
Crystal.BeginCreate(name)
Iniciar un borrador para un cristal nuevo
Crystal.BeginEdit()
Iniciar un borrador desde el cristal actual (se conservan celda, grupo espacial, átomos y orientación)
Crystal.LoadCifText(cifText)
Iniciar un borrador desde texto CIF (el contenido de un archivo .cif, no una ruta)
Crystal.SetName(name)
Renombrar el borrador
Crystal.SetCellInAng(a, b, c, alpha, beta, gamma)
Constantes de celda en Å y grados. Cada llamada reemplaza la celda completa; los argumentos omitidos se derivan de las restricciones del grupo espacial (para un cristal cúbico basta a), y los valores explícitos que las contradicen provocan un error
Crystal.SetSpaceGroup(symbol)
Grupo espacial por símbolo (HM corto/completo o Hall; espacios y _ se ignoran). Añade la configuración ('Fd-3m:2', 'R-3c:H', 'P21/c:b1') cuando el grupo tiene varias — los símbolos ambiguos provocan un error que lista los candidatos
Crystal.SetSpaceGroupByNumber(itNumber, setting)
Grupo espacial por número IT (1–230); setting ('1', '2', 'H', 'R', 'b1', …) elige entre varias configuraciones
Crystal.AddAtom(label, element, x, y, z, occ, bIso)
Añadir un átomo de la unidad asimétrica: símbolo del elemento, coordenadas fraccionarias, ocupación (0 < occ ≤ 1, por defecto 1) y B isotrópico en Ų (por defecto 0). Las posiciones equivalentes, letras de Wyckoff y multiplicidades se derivan automáticamente
Tras un Commit() con éxito, el siguiente BeginEdit() parte del cristal actualizado, así que los cambios se acumulan — para barridos absolutos, lee los valores base antes del bucle, como arriba. Para registrar el cristal en la lista de cristales, llama a CrystalList.Add().
Establecer la orientación mediante ángulos de Euler (radianes)
Dir.EulerInDegree(phi, theta, psi)
Establecer la orientación mediante ángulos de Euler (grados)
Dir.EulerInDeg(phi, theta, psi)
Alias de EulerInDegree
Dir.Rotate(ax, ay, az, angle)
Rotar alrededor de un eje arbitrario (radianes)
Dir.RotateInDeg(ax, ay, az, angle)
Rotar alrededor de un eje arbitrario (grados)
Dir.RotateAroundAxis(u, v, w, angle)
Rotar alrededor del eje de zona [uvw] (radianes)
Dir.RotateAroundAxisInDeg(u, v, w, angle)
Rotar alrededor del eje de zona [uvw] (grados)
Dir.RotateAroundPlane(h, k, l, angle)
Rotar alrededor de la normal del plano (hkl) (radianes)
Dir.RotateAroundPlaneInDeg(h, k, l, angle)
Rotar alrededor de la normal del plano (hkl) (grados)
Dir.ProjectAlongPlane(h, k, l)
Situar la normal del plano perpendicular a la pantalla
Dir.ProjectAlongAxis(u, v, w)
Situar el eje de zona perpendicular a la pantalla
Dir.GetEuler()
Obtener la orientación actual como ángulos de Euler Z-X-Z [phi, theta, psi] (radianes)
Dir.GetEulerInDeg()
Obtener la orientación actual como ángulos de Euler Z-X-Z [phi, theta, psi] (grados)
Dir.GetRotationMatrix()
Obtener la matriz de rotación actual como un array de nueve elementos [R11, R12, R13, R21, R22, R23, R31, R32, R33], la misma convención que SpotID.CandidateList()
Establecer la orientación a partir de nueve elementos de la matriz de rotación (validados y reortonormalizados antes de aplicarse)
Los ángulos de Euler no son únicos en las posiciones de bloqueo de cardán (θ = 0 o 180°): GetEuler() tras Euler() reproduce la misma actitud, pero no necesariamente los mismos números. Para guardar y restaurar la orientación con exactitud, usa Dir.GetRotationMatrix() / Dir.SetRotationMatrix(). La convención completa se describe en Geometría de rotación.
Controla Spot ID v2 desde una macro: cargar una imagen o una lista de puntos, detectar los puntos, buscar orientaciones y recuperar los candidatos, sin tocar la ventana. FindSpots() e Identify() solo regresan cuando el trabajo ha terminado, así que pueden encadenarse directamente.
Cargar un archivo igual que File > Load: .csv se lee como lista de puntos (antes debe haberse cargado una imagen) y cualquier otra extensión como imagen de patrón de difracción (dm3, dm4, mrc, ipa, tif y otros formatos admitidos). Omite filename para abrir un diálogo de archivo
SpotID.FindSpots()
Detectar los puntos de la imagen cargada y ajustarlos, como hace el botón Find spots
SpotID.Identify()
Buscar orientaciones que expliquen los puntos detectados, como hace el botón Identify spots, y devolver el número de candidatos. Se prueban los cristales seleccionados en la lista de cristales de la ventana principal
SpotID.CandidateList()
Devolver la lista de orientaciones candidatas como texto CSV
SpotID.SpotList()
Devolver los puntos observados como texto CSV, con las mismas columnas que File > Save. Combínalo con File.SaveText() para escribir un archivo que LoadFile() pueda volver a leer
CandidateList() da, por cada candidato: nombre del cristal, los ángulos de Euler Z-X-Z (grados), los nueve elementos R11–R33 de la matriz de rotación (del sistema del cristal al del laboratorio, aplicada a vectores columna), el residuo cuadrático medio (nm⁻²) y la asignación de los puntos observados a índices hkl. Los candidatos vienen ordenados por número de puntos asignados (descendente) y luego por el residuo (ascendente). Los números se escriben en la cultura invariante, así que el separador decimal es siempre un punto.
Controla el visor de estructura desde una macro. SaveImage() y Export3DModel() abren antes la ventana si es necesario, porque el modelo 3D se construye al mostrarla.
Función
Descripción
StructureViewer.Open()
Abrir la ventana del visor de estructura
StructureViewer.Close()
Cerrar la ventana del visor de estructura
StructureViewer.SaveImage(filename)
Guardar la vista principal renderizada como PNG, con el tamaño en píxeles del cuadro Size (W×H); omite filename para abrir un diálogo
Exportar la estructura mostrada para impresión 3D, como Export 3D Model (3MF/STL) del menú File. La extensión decide el formato (.stl monocolor / .3mf coloreado por elemento); solo filename es obligatorio — los demás valores por defecto son los del diálogo (dimensión mayor 80 mm, aristas de la celda ⌀2,4 mm, enlaces engrosados a ⌀1,2 mm). Con fixedScaleInMMperNm > 0 se construyen varios modelos a la misma escala
Estas tres clases de simulación de imágenes comparten muchos miembros. Para evitar repeticiones, las tablas siguientes utilizan marcadores de posición:
# : común a HRTEM, STEM y Potential. Reemplace # por HRTEM, STEM o Potential (p. ej. STEM.Simulate(), Potential.AccVol).
$ : común únicamente a HRTEM y STEM. Reemplace $ por HRTEM o STEM.
Los miembros escritos con un nombre de clase explícito (STEM.… / HRTEM.…) pertenecen solo a esa clase. La clase Potential no añade miembros propios; utiliza únicamente los miembros #.