Afficher le dialogue de sélection de dossier, renvoyer le chemin choisi ; avec filename, renvoie plutôt le dossier qui le contient
File.GetFileName()
Afficher le dialogue de sélection de fichier, renvoyer le chemin choisi
File.GetFileNames()
Afficher le dialogue de sélection de fichiers multiples, renvoyer la liste des chemins
File.ReadCrystalList(filename)
Charger un fichier de liste de cristaux (*.xml) ; sans filename, une boîte de dialogue s'ouvre
File.ReadCrystal(filename)
Charger un fichier de cristal CIF/AMC ; sans filename, une boîte de dialogue s'ouvre
File.ExportAsCIF(filename)
Exporter le cristal actuel au format CIF ; sans filename, une boîte de dialogue s'ouvre
File.ReadText(filename)
Lire un fichier texte en UTF-8 et le renvoyer comme chaîne ; sans filename, une boîte de dialogue s'ouvre. À associer à Crystal.LoadCifText() / SaveText()
File.SaveText(textData, filename)
Enregistrer des données texte dans un fichier ; écrit textData en UTF-8 ; sans filename, une boîte de dialogue d'enregistrement s'ouvre
Un cristal se construit dans un brouillon en attente : on le démarre, on le remplit avec les setters, puis Commit() valide tout, construit le cristal et l'applique comme cristal courant en une seule étape (l'interface et tous les simulateurs ouverts se mettent à jour, comme au chargement d'un fichier CIF). Un Commit() en échec signale toutes les erreurs de validation ensemble, ne change rien et conserve le brouillon, qui peut donc être corrigé puis recommitté.
Fonction
Description
Crystal.BeginCreate(name)
Démarrer un brouillon pour un nouveau cristal
Crystal.BeginEdit()
Démarrer un brouillon depuis le cristal courant (maille, groupe d'espace, atomes et orientation sont repris)
Crystal.LoadCifText(cifText)
Démarrer un brouillon depuis un texte CIF (le contenu d'un fichier .cif, pas un chemin)
Crystal.SetName(name)
Renommer le brouillon
Crystal.SetCellInAng(a, b, c, alpha, beta, gamma)
Constantes de maille en Å et degrés. Chaque appel remplace toute la maille ; les arguments omis sont déduits des contraintes du groupe d'espace (pour un cristal cubique, a suffit), et les valeurs explicites qui les contredisent déclenchent une erreur
Crystal.SetSpaceGroup(symbol)
Groupe d'espace par symbole (HM court/complet ou Hall ; espaces et _ ignorés). Ajoutez la configuration ('Fd-3m:2', 'R-3c:H', 'P21/c:b1') quand le groupe en a plusieurs — un symbole ambigu déclenche une erreur listant les candidats
Crystal.SetSpaceGroupByNumber(itNumber, setting)
Groupe d'espace par numéro IT (1–230) ; setting ('1', '2', 'H', 'R', 'b1', …) choisit parmi plusieurs configurations
Crystal.AddAtom(label, element, x, y, z, occ, bIso)
Ajouter un atome de l'unité asymétrique : symbole de l'élément, coordonnées fractionnaires, occupation (0 < occ ≤ 1, défaut 1) et B isotrope en Ų (défaut 0). Positions équivalentes, lettres de Wyckoff et multiplicités sont déduites automatiquement
Après un Commit() réussi, le BeginEdit() suivant part du cristal mis à jour : les changements s'accumulent — pour un balayage en valeurs absolues, lisez les valeurs de base avant la boucle, comme ci-dessus. Pour inscrire le cristal dans la liste des cristaux, appelez CrystalList.Add().
Obtenir la matrice de rotation actuelle sous forme de tableau à neuf éléments [R11, R12, R13, R21, R22, R23, R31, R32, R33] — la même convention que SpotID.CandidateList()
Définir l'orientation à partir de neuf éléments de matrice de rotation (validés et réorthonormalisés avant application)
Les angles d'Euler ne sont pas uniques aux positions de blocage de cardan (θ = 0 ou 180°) : GetEuler() après Euler() reproduit la même attitude, mais pas nécessairement les mêmes nombres. Pour enregistrer et restaurer exactement l'orientation, utilisez Dir.GetRotationMatrix() / Dir.SetRotationMatrix(). La convention complète est décrite dans Géométrie de rotation.
Pilote Spot ID v2 depuis une macro : charger une image ou une liste de taches, détecter les taches, chercher les orientations et récupérer les candidats, sans toucher à la fenêtre. FindSpots() et Identify() ne rendent la main qu'une fois le travail terminé et peuvent donc s'enchaîner directement.
Charger un fichier comme le fait File > Load : un .csv est lu comme liste de taches (une image doit avoir été chargée au préalable), toute autre extension comme image de cliché de diffraction (dm3, dm4, mrc, ipa, tif et autres formats pris en charge). Sans filename, une boîte de dialogue s'ouvre
SpotID.FindSpots()
Détecter les taches de l'image chargée et les ajuster, comme le fait le bouton Find spots
SpotID.Identify()
Chercher les orientations qui expliquent les taches détectées, comme le fait le bouton Identify spots, et renvoyer le nombre de candidats. Les cristaux testés sont ceux sélectionnés dans la liste de cristaux de la fenêtre principale
SpotID.CandidateList()
Renvoyer la liste des orientations candidates sous forme de texte CSV
SpotID.SpotList()
Renvoyer les taches observées sous forme de texte CSV, avec les mêmes colonnes que File > Save. Associé à File.SaveText(), il produit un fichier que LoadFile() sait relire
CandidateList() donne, pour chaque candidat : le nom du cristal, les angles d'Euler Z-X-Z (degrés), les neuf éléments R11–R33 de la matrice de rotation (repère du cristal vers le repère du laboratoire, appliquée à des vecteurs colonnes), le résidu quadratique moyen (nm⁻²) et l'affectation des taches observées à des indices hkl. Les candidats sont classés par nombre de taches affectées (décroissant), puis par résidu (croissant). Les nombres sont écrits en culture invariante : le séparateur décimal est toujours un point.
Pilote la visionneuse de structure depuis une macro. SaveImage() et Export3DModel() ouvrent d'abord la fenêtre si nécessaire, car le modèle 3D est construit à l'affichage de la fenêtre.
Fonction
Description
StructureViewer.Open()
Ouvrir la fenêtre de la visionneuse de structure
StructureViewer.Close()
Fermer la fenêtre de la visionneuse de structure
StructureViewer.SaveImage(filename)
Enregistrer la vue principale rendue en PNG, à la taille en pixels du champ Size (W×H) ; sans filename, une boîte de dialogue s'ouvre
Exporter la structure affichée pour l'impression 3D, comme Export 3D Model (3MF/STL) du menu File. L'extension détermine le format (.stl monochrome / .3mf coloré par élément) ; seul filename est requis — les autres valeurs par défaut sont celles de la boîte de dialogue (plus grande dimension 80 mm, arêtes de maille ⌀2,4 mm, liaisons épaissies à ⌀1,2 mm). Avec fixedScaleInMMperNm > 0, plusieurs modèles partagent la même échelle
Ces trois classes de simulation d'image partagent de nombreux membres. Pour éviter les répétitions, les tableaux ci-dessous utilisent des espaces réservés :
# : commun à HRTEM, STEM et Potential. Remplacez # par HRTEM, STEM ou Potential (par ex. STEM.Simulate(), Potential.AccVol).
$ : commun à HRTEM et STEM uniquement. Remplacez $ par HRTEM ou STEM.
Les membres écrits avec un nom de classe explicite (STEM.… / HRTEM.…) appartiennent uniquement à cette classe. La classe Potential n'ajoute aucun membre propre ; elle utilise uniquement les membres #.