Dokumentation

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.

Scripting Übersicht

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.

Scripting Editor

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.

Scripting Code Beispiel
Funktion Beschreibung
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

Funktion Beschreibung
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

Event Beschreibung
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.

Funktion Beschreibung
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 } });

Bereit zum Programmieren?

Setzen Sie Ihr Wissen in die Praxis um

Jetzt kostenlos starten