Mostra la finestra di selezione cartella, restituisce il percorso selezionato; passando filename restituisce invece la cartella che lo contiene
File.GetFileName()
Mostra la finestra di selezione file, restituisce il percorso selezionato
File.GetFileNames()
Mostra la finestra di selezione multipla di file, restituisce l'elenco dei percorsi
File.ReadCrystalList(filename)
Carica un file di elenco cristalli (*.xml); omettendo filename si apre una finestra di dialogo
File.ReadCrystal(filename)
Carica un file di cristallo CIF/AMC; omettendo filename si apre una finestra di dialogo
File.ExportAsCIF(filename)
Esporta il cristallo corrente come CIF; omettendo filename si apre una finestra di dialogo
File.ReadText(filename)
Leggere un file di testo come UTF-8 e restituirlo come stringa; omettendo filename si apre una finestra di dialogo. Da abbinare a Crystal.LoadCifText() / SaveText()
File.SaveText(textData, filename)
Salva dati di testo in un file; scrive textData in UTF-8 e, omettendo filename, apre una finestra di salvataggio
Un cristallo si costruisce in una bozza pendente: la si avvia, la si riempie con i setter, e Commit() valida tutto, costruisce il cristallo e lo applica come cristallo corrente in un solo passo (la GUI e tutti i simulatori aperti si aggiornano, come al caricamento di un file CIF). Un Commit() fallito riporta tutti gli errori di validazione insieme, non cambia nulla e conserva la bozza, che può quindi essere corretta e ricommittata.
Funzione
Descrizione
Crystal.BeginCreate(name)
Avviare una bozza per un nuovo cristallo
Crystal.BeginEdit()
Avviare una bozza dal cristallo corrente (cella, gruppo spaziale, atomi e orientazione vengono ereditati)
Crystal.LoadCifText(cifText)
Avviare una bozza da testo CIF (il contenuto di un file .cif, non un percorso)
Crystal.SetName(name)
Rinominare la bozza
Crystal.SetCellInAng(a, b, c, alpha, beta, gamma)
Costanti di cella in Å e gradi. Ogni chiamata sostituisce l'intera cella; gli argomenti omessi sono derivati dai vincoli del gruppo spaziale (per un cristallo cubico basta a), e i valori espliciti che li contraddicono generano un errore
Crystal.SetSpaceGroup(symbol)
Gruppo spaziale per simbolo (HM breve/completo o Hall; spazi e _ ignorati). Aggiungete l'impostazione ('Fd-3m:2', 'R-3c:H', 'P21/c:b1') quando il gruppo ne ha più d'una — i simboli ambigui generano un errore che elenca i candidati
Crystal.SetSpaceGroupByNumber(itNumber, setting)
Gruppo spaziale per numero IT (1–230); setting ('1', '2', 'H', 'R', 'b1', …) sceglie tra più impostazioni
Crystal.AddAtom(label, element, x, y, z, occ, bIso)
Aggiungere un atomo dell'unità asimmetrica: simbolo dell'elemento, coordinate frazionarie, occupazione (0 < occ ≤ 1, default 1) e B isotropo in Ų (default 0). Posizioni equivalenti, lettere di Wyckoff e molteplicità sono derivate automaticamente
Dopo un Commit() riuscito, il BeginEdit() successivo parte dal cristallo aggiornato: le modifiche si accumulano — per scansioni in valori assoluti, leggete i valori di base prima del ciclo, come sopra. Per registrare il cristallo nell'elenco dei cristalli, chiamate CrystalList.Add().
Imposta l'orientazione tramite angoli di Eulero (radianti)
Dir.EulerInDegree(phi, theta, psi)
Imposta l'orientazione tramite angoli di Eulero (gradi)
Dir.EulerInDeg(phi, theta, psi)
Alias di EulerInDegree
Dir.Rotate(ax, ay, az, angle)
Ruota attorno a un asse arbitrario (radianti)
Dir.RotateInDeg(ax, ay, az, angle)
Ruota attorno a un asse arbitrario (gradi)
Dir.RotateAroundAxis(u, v, w, angle)
Ruota attorno all'asse di zona [uvw] (radianti)
Dir.RotateAroundAxisInDeg(u, v, w, angle)
Ruota attorno all'asse di zona [uvw] (gradi)
Dir.RotateAroundPlane(h, k, l, angle)
Ruota attorno alla normale al piano (hkl) (radianti)
Dir.RotateAroundPlaneInDeg(h, k, l, angle)
Ruota attorno alla normale al piano (hkl) (gradi)
Dir.ProjectAlongPlane(h, k, l)
Imposta la normale al piano perpendicolare allo schermo
Dir.ProjectAlongAxis(u, v, w)
Imposta l'asse di zona perpendicolare allo schermo
Dir.GetEuler()
Ottieni l'orientazione corrente come angoli di Eulero Z-X-Z [phi, theta, psi] (radianti)
Dir.GetEulerInDeg()
Ottieni l'orientazione corrente come angoli di Eulero Z-X-Z [phi, theta, psi] (gradi)
Dir.GetRotationMatrix()
Ottieni la matrice di rotazione corrente come array di nove elementi [R11, R12, R13, R21, R22, R23, R31, R32, R33] — la stessa convenzione di SpotID.CandidateList()
Imposta l'orientazione da nove elementi della matrice di rotazione (validati e riortonormalizzati prima dell'applicazione)
Gli angoli di Eulero non sono unici nelle posizioni di blocco cardanico (θ = 0 o 180°): GetEuler() dopo Euler() riproduce lo stesso assetto, ma non necessariamente gli stessi numeri. Per salvare e ripristinare esattamente l'orientazione, usa Dir.GetRotationMatrix() / Dir.SetRotationMatrix(). La convenzione completa è descritta in Geometria di rotazione.
Pilota Spot ID v2 da una macro: caricare un'immagine o un elenco di spot, rilevare gli spot, cercare le orientazioni e rileggere i candidati, senza toccare la finestra. FindSpots() e Identify() tornano solo a lavoro concluso, quindi si possono concatenare direttamente.
Caricare un file come fa File > Load: un .csv viene letto come elenco di spot (occorre aver caricato prima un'immagine), qualsiasi altra estensione come immagine di figura di diffrazione (dm3, dm4, mrc, ipa, tif e altri formati supportati). Omettendo filename si apre una finestra di selezione
SpotID.FindSpots()
Rilevare gli spot nell'immagine caricata e adattarli, come fa il pulsante Find spots
SpotID.Identify()
Cercare le orientazioni che spiegano gli spot rilevati, come fa il pulsante Identify spots, e restituire il numero di candidati. I cristalli provati sono quelli selezionati nell'elenco cristalli della finestra principale
SpotID.CandidateList()
Restituire l'elenco delle orientazioni candidate come testo CSV
SpotID.SpotList()
Restituire gli spot osservati come testo CSV, con le stesse colonne di File > Save. Insieme a File.SaveText() produce un file che LoadFile() sa rileggere
CandidateList() fornisce, per ciascun candidato: nome del cristallo, gli angoli di Eulero Z-X-Z (gradi), i nove elementi R11–R33 della matrice di rotazione (dal riferimento del cristallo a quello del laboratorio, applicata a vettori colonna), il residuo quadratico medio (nm⁻²) e l'assegnazione degli spot osservati agli indici hkl. I candidati sono ordinati per numero di spot assegnati (decrescente) e poi per residuo (crescente). I numeri sono scritti in invariant culture, quindi il separatore decimale è sempre il punto.
Pilota il visualizzatore di struttura da una macro. SaveImage() ed Export3DModel() aprono prima la finestra se necessario, perché il modello 3D viene costruito quando la finestra è mostrata.
Funzione
Descrizione
StructureViewer.Open()
Aprire la finestra del visualizzatore di struttura
StructureViewer.Close()
Chiudere la finestra del visualizzatore di struttura
StructureViewer.SaveImage(filename)
Salvare la vista principale renderizzata come PNG, alla dimensione in pixel del campo Size (W×H); omettendo filename si apre una finestra di dialogo
Esportare la struttura visualizzata per la stampa 3D, come Export 3D Model (3MF/STL) del menu File. L'estensione decide il formato (.stl monocolore / .3mf colorato per elemento); solo filename è obbligatorio — gli altri valori predefiniti sono quelli della finestra di dialogo (dimensione massima 80 mm, spigoli della cella ⌀2,4 mm, legami ispessiti a ⌀1,2 mm). Con fixedScaleInMMperNm > 0 si costruiscono più modelli alla stessa scala
Queste tre classi di simulazione delle immagini condividono molti membri. Per evitare ripetizioni, le tabelle seguenti usano dei segnaposto:
# : comune a HRTEM, STEM e Potential. Sostituisci # con HRTEM, STEM o Potential (ad es. STEM.Simulate(), Potential.AccVol).
$ : comune solo a HRTEM e STEM. Sostituisci $ con HRTEM o STEM.
I membri scritti con un nome di classe esplicito (STEM.… / HRTEM.…) appartengono solo a quella classe. La classe Potential non aggiunge membri propri; usa solo i membri #.