Scripting API
Scripting leicht gemacht für leistungsstarke Konfiguratoren
Übersicht
confBuild bietet leistungsstarke Scripting-Funktionen für interaktive 3D-Konfiguratoren mit einer VBA-ähnlichen JavaScript-API.
3D-Modell-Scripting
Erweitern Sie Ihre 3D-Konfiguratoren mit leistungsstarken Scripting-Funktionen unserer VBA-ähnlichen JavaScript-API. Machen Sie 3D-Szenen interaktiv und dynamisch.
UI-Anpassung
Erstellen Sie eigene Benutzeroberflächen für Ihre Konfiguratoren mit intuitiven Tools. Volle Unterstützung für jQuery und React-Integration.
Excel-Integration
Verbinden Sie nahtlos Ihre Excel-Tabellen, um dynamische, datengesteuerte 3D-Modelle zu erstellen. Optimieren Sie Daten durch Schleifen und Automatisierung.
Über die API
Die Scripting-API ist JavaScript, inspiriert von Excel VBA. Sie ermöglicht die Erstellung interaktiver 3D-Modelle, die Optimierung von Excel-Tabellendaten durch Schleifen und zusätzliche Automatisierung für Ihre Konfiguratoren.
Hinweis: Verwenden Sie doppelte Anführungszeichen (") statt einfacher Anführungszeichen (') für Strings in Ihren Skripten.
Allgemeine Verwendung
Lernen Sie die Grundlagen der Scripting-API.
Erste Schritte
- Zugriff auf das aktive Projekt über
ActiveWorkbook - Zellenwerte programmatisch lesen und schreiben
- Kontextmenü mit Strg+Leertaste für Code-Vorschläge öffnen
- Aus vordefinierten Vorlagen auswählen für schnellen Einstieg
Wichtig: Nach dem Bearbeiten von Zellenwerten immer API.updateUI(); aufrufen, um die Benutzeroberfläche zu aktualisieren.
Beispiel: Interaktive Farbänderung
Dieses Beispiel zeigt, wie die Farbe eines Objekts geändert wird, wenn die Maus eintritt und verlässt:
async function enteractor(object) {
console.log("Maus eingetreten:", object);
object.material.color.set("#ff0000");
await API.updateUI();
}
async function leaveactor(object) {
console.log("Maus verlassen:", object);
object.material.color.set("#ebebeb");
await API.updateUI();
}
Zell-Operationen
Lesen und schreiben Sie Zellenwerte programmatisch.
getCellValue(address)
Zellenwert abrufen
getCellFormula(address)
Zellenformel abrufen
setCellContents(address, value)
Zelleninhalt setzen (Wert oder Formel)
getRangeValues(range)
Werte aus einem Zellenbereich abrufen
getRangeFormulas(range)
Formeln aus einem Zellenbereich abrufen
Datentypen
SimpleCellAddress: Repräsentiert eine einzelne Zellenposition
{
sheet: number, // Tabellenindex (0-basiert)
col: number, // Spaltenindex (0-basiert)
row: number // Zeilenindex (0-basiert)
}
SimpleCellRange: Repräsentiert einen Zellenbereich
{
start: { sheet: number, col: number, row: number },
end: { sheet: number, col: number, row: number }
}
Beispiel: Zellen lesen und schreiben
// Zellenwert abrufen
const value = await getCellValue({ sheet: 0, col: 0, row: 0 });
// Zellenwert setzen
await setCellContents({ sheet: 0, col: 1, row: 0 }, "Hallo Welt");
// Wertebereich abrufen
const range = await getRangeValues({
start: { sheet: 0, col: 0, row: 0 },
end: { sheet: 0, col: 5, row: 10 }
});
// UI aktualisieren nicht vergessen!
await API.updateUI();
Event Handler
Reagieren Sie auf Benutzerinteraktionen und Projekt-Lebenszyklus-Events.
Projekt-Lebenszyklus-Hooks
projectLoaded(project)
Wird aufgerufen, wenn das Projekt fertig geladen ist
projectActivated(project)
Wird aufgerufen, wenn das Projekt aktiv wird
setConfigurationParams(sheetId, paramNames, params)
Konfigurationsparameter setzen
getactiveconfig()
Aktuelle Konfiguration abrufen
saveconfig(id?)
Aktuelle Konfiguration speichern
loadconfig(configid)
Gespeicherte Konfiguration laden
Button-Klick-Events
Sie können JavaScript ausführen, wenn Buttons in Ihrer Konfigurator-Oberfläche geklickt werden. Dies ermöglicht interaktive Steuerelemente, die benutzerdefinierte Aktionen auslösen.
Beispiel: Projekt-Initialisierung
async function projectLoaded(project) {
console.log("Projekt geladen:", project.name);
// Standardwerte initialisieren
await setCellContents({ sheet: 0, col: 0, row: 0 }, 100);
await API.updateUI();
}
async function projectActivated(project) {
console.log("Projekt aktiviert:", project.name);
// Setup durchführen, wenn Projekt aktiv wird
}
3D-Objekt-Interaktion
Behandeln Sie Mausereignisse auf 3D-Objekten in Ihrer Szene.
Verfügbare Mausereignisse
MouseClick(object)
Ausgelöst beim Klicken auf das Objekt
MouseEnter(object)
Ausgelöst wenn Maus in Objektbereich eintritt
MouseLeave(object)
Ausgelöst wenn Maus Objektbereich verlässt
MouseMove(object)
Ausgelöst bei Mausbewegung über dem Objekt
MouseDown(object)
Ausgelöst wenn Maustaste auf Objekt gedrückt wird
MouseUp(object)
Ausgelöst wenn Maustaste auf Objekt losgelassen wird
Alle Event-Handler erhalten das 3D-Objekt als Parameter, sodass Sie dessen Eigenschaften direkt ändern können.
Beispiel: Objekt-Material-Änderung
// Farbe bei Klick ändern
function MouseClick(object) {
object.material.color.set("#660000");
}
// Hervorhebung bei Hover
function MouseEnter(object) {
object.material.emissive.set("#333333");
}
function MouseLeave(object) {
object.material.emissive.set("#000000");
}
// Mausposition verfolgen
function MouseMove(object) {
console.log("Maus bewegt sich über:", object.name);
}
Hilfsfunktionen
Utility-Funktionen für häufige Operationen.
getSheetDimensions(sheetId)
Dimensionen (Zeilen, Spalten) einer Tabelle abrufen
simpleCellAddressFromString(address, sheetId)
String-Adresse (z.B. "A1") in SimpleCellAddress umwandeln
simpleCellAddressToString(address, sheetId)
SimpleCellAddress in String-Format umwandeln
searchCell(value, range)
Wert in einem Zellenbereich suchen
Beispiel: Hilfsfunktionen verwenden
// Tabellendimensionen abrufen
const dims = await getSheetDimensions(0);
console.log("Zeilen:", dims.rows, "Spalten:", dims.cols);
// String-Adresse in Objekt umwandeln
const cellAddr = await simpleCellAddressFromString("B5", 0);
// Ergebnis: { sheet: 0, col: 1, row: 4 }
// Nach einem Wert suchen
const found = await searchCell("meinWert", {
start: { sheet: 0, col: 0, row: 0 },
end: { sheet: 0, col: 10, row: 100 }
});