FormIt for Windows
Italiano
Italiano
  • Introduzione
  • Novità
  • Funzionalità di FormIt
    • Più client
    • Modellazione concettuale di solidi
    • Utilizzo di formati di dati
    • Lingue
    • Collaborazione
    • Grafica per presentazioni
    • FormIt + Autodesk Docs
    • FormIt + Dynamo
    • Analisi solare + Analisi energetica
    • FormIt + Revit
    • FormIt + JavaScript per plug-in
  • Introduzione a FormIt
    • Domande frequenti
    • Prerequisiti e installazione
    • Impostazione del progetto
    • Barre degli strumenti e tavolozze
    • Navigazione nella scena
  • Guida introduttiva di FormIt
    • Parte I
      • 1.1 - Impostazione della posizione
      • 1.2 - Impostazione del progetto con immagini e griglia
      • 1.3 - Disegno 3D e trascinamento della superficie
      • 1.4 - Aggiunta di pavimenti con livelli
      • 1.5 - Raggruppamento di oggetti
      • 1.6 - Controllo della visibilità con i layer
      • 1.7 - Pittura con i materiali
      • 1.8 - Creazione di pilastri con matrice
      • 1.9 - Aggiunta di dettagli
      • 1.10 - Gruppi di calcolo con Dynamo
      • 1.11 - Importazione di modelli con Libreria del contenuto
      • 1.12 - Stili di visualizzazione
      • 1.13 - Piani di sezione
      • 1.14 - Esportazione di un'immagine
      • 1.15 - Utilizzo di Revit
    • Parte II
      • 2.1 - Strumento Linea di offset
      • 2.2 - Strumenti di modellazione avanzati: Involucro e Copertura
      • 2.3 Workflow della vista ortogonale
      • 2.4 - Workflow del terreno 3D
      • 2.5 - Plug-in
      • 2.6 - Nodi di Dynamo in FormIt
      • 2.7 - Strumenti di diagnostica
      • 2.8 - Workflow avanzati di Revit
      • 2.9 - Analisi solare e Analisi energetica di Insight
      • 2.10 - Sessioni di collaborazione
  • Libreria degli strumenti
    • 3D Text
    • Allinea cinepresa alla superficie
    • Arco
    • Matrice
    • Array Along Path
    • Salvataggio automatico
    • Taglio booleano
    • Intersezione booleana
    • Unione booleana
    • Cerchio
    • Collaborazione
    • Libreria del contenuto
    • Copia di oggetti
    • Copertura, Estrusione su percorso, Loft
    • Crea panorama
    • Sfaccettatura di curve e superfici
    • Elimina, Modifica, Sposta
    • Dynamo
    • Analisi energetica con Insight
    • Superfici: Estrudi, Taglia e Offset
    • Superfici: Livella superfici
    • Superfici: Inclina superficie e Sfaccetta superfici lisce
    • Struttura gruppi
    • Gruppi
    • Importazione ed esportazione di dati
    • Layer
    • Livelli e area
    • Linee
    • Materiali
    • Misura angolo
    • Misura
    • Mesh
    • Copia speculare
    • Statistiche modello
    • Struttura modello
    • Modifica di superfici, bordi e punti
    • Scala non uniforme
    • Linea di offset
    • Viste ortogonali
    • Cinepresa ortogonale e prospettica
    • Posizionamento di primitive
    • Sostituisci vertice
    • Plug-in
    • Poligono
    • Proprietà
    • Railing Along Path
    • Rettangolo
    • Revit
    • Rotazione di oggetti
    • Scala di oggetti
    • Scene
    • Piani di sezione
    • Selezione
    • Impostazione della posizione
    • Sole + Ombre
    • Involucro
    • Snap e deduzioni
    • Analisi solare
    • Spline
    • Sistemi di montanti di facciata continua/facciata del negozio
    • Gestione operazioni annullate
    • Stili di visualizzazione
    • Piani di lavoro
    • Assi globali
  • Plug-in
    • Introduzione ai plug-in
    • Come utilizzare i plug-in
    • Come sviluppare i plug-in
      • Il primo plug-in
        • Plugin Playground
        • Avvio del plug-in di esempio
        • Aggiunta di funzionalità personalizzate
        • Salvataggio del lavoro su GitHub
        • Pubblicazione del progetto
      • Sviluppo avanzato
        • Utilizzo di un IDE
        • Clonazione di un plug-in di esempio
        • Hosting di un plug-in su un server locale
        • Anteprima di un plug-in in Plugin Manager
        • Impostazione di FormIt per lo sviluppo
        • Hosting di un plug-in su GitHub
        • Impostazione generale di plug-in nel file manifesto
        • Ricaricamento per modifiche locali
        • Motori lato client e lato Web
        • Debug
        • Controllo delle versioni
      • Opzioni di sviluppo aggiuntive
        • Creazione di un plug-in del pannello HTML
        • Creazione di un plug-in della barra degli strumenti e di un plug-in del pannello HTML combinati
        • Creazione di un plug-in basato sulla barra degli strumenti
        • Test di un plug-in della barra degli strumenti e di un plug-in del pannello HTML combinati
        • Creazione di un modulo aggiuntivo
        • Richiamo di plug-in e API da Dynamo
    • API di FormIt
    • Esempi
      • Generate String Lights
      • Plug-in Manage Cameras
      • Plug-in Properties Plus
      • 3D Context Creator
      • Community per plug-in di FormIt
  • Appendice
    • Tasti di scelta rapida
Powered by GitBook
On this page
  • Lato client (FormIt) e lato Web (HTML)
  • Lato client (FormIt)
  • Lato Web (HTML)
  • Tre metodi per chiamare i comandi lato client (FormIt) da un plug-in basato sul Web:
  • Metodo 1: FormItInterface.CallMethod
  • Metodo 2: FormIt.CallJS
  • Metodo 3 (asincrono/in attesa)
  • Metodo 4 (RegisterAsyncAPI)
Edit on GitHub
  1. Plug-in
  2. Come sviluppare i plug-in
  3. Sviluppo avanzato

Motori lato client e lato Web

PreviousRicaricamento per modifiche localiNextDebug

Last updated 2 years ago

I plug-in di FormIt utilizzano due motori JavaScript distinti:

  • Il pannello che visualizza il codice HTML (lato Web)

  • Il lato client (FormIt) che effettua chiamate a FormIt e al relativo kernel di geometria.

Questi due motori JavaScript funzionano in processi distinti.

Lato client (FormIt) e lato Web (HTML)

FormIt esegue più motori JavaScript contemporaneamente:

  • L'applicazione FormIt dispone di un motore JavaScript.

  • Ogni barra degli strumenti del plug-in ha il suo motore JavaScript.

  • Ogni pannello del plug-in ha il suo motore JavaScript (Chromium).

I plug-in possono specificare la posizione in cui viene caricato JavaScript:

Lato client (FormIt)

    "Scripts": [
        "PLUGINLOCATION/blockFormItSide.js",
        "https://formit3d.github.io/FormItExamplePlugins/SharedPluginFiles/PluginUtils18_0.js"
    ]

Lato Web (HTML)

  • Gli script lato Web vengono caricati dalla pagina Web.

  • Gli script lato Web possono richiamare JavaScript lato client (FormIt) utilizzando più chiamate asincrone.

Tre metodi per chiamare i comandi lato client (FormIt) da un plug-in basato sul Web:

Metodo 1: FormItInterface.CallMethod

CallMethod utilizza un nome di funzione e gli argomenti che verranno eseguiti sul lato FormIt. La funzione trasferita verrà chiamata con il risultato della chiamata di funzione.

    var args = {
        "w": 10,
        "l": 10,
        "h": 10
    }
    FormItInterface.CallMethod("CreateBlock", args, function(result)
    {
        // Result of the function call
    });

Vantaggi:

➕ Non è necessaria la parola chiave await.

Svantaggi:

➖ È necessario un callback per ottenere il risultato e viene chiamato "chi sa quando".

➖ Gli script vengono definiti in due posizioni diverse.

➖ Richiede di suddividere la logica del plug-in in due file diversi.

Metodo 2: FormIt.CallJS

*Disponibile solo in FormIt 2022.1 e versioni successive

CallJS utilizza la funzione JavaScript da richiamare sul lato FormIt e l'oggetto arguments.json.

var args =
{
    "w": 10,
    "l": 10,
    "h": 10
};
var result = await FormIt.CallJS("CreateBlock", args);

Vantaggi:

➕ Il risultato è disponibile quando necessario.

Svantaggi:

➖ **** È necessario modificare tutte le chiamate asincrone con await; in caso contrario, ciò potrebbe provocare problemi.

➖ **** Si potrebbe verificare un rallentamento delle prestazioni a causa di await.

Metodo 3 (asincrono/in attesa)

const pt1 = await WSM.Geom.Point3d(0,0,0);

Con una chiamata asincrona, il lato Web chiama il lato FormIt. Questa chiamata inizia in un processo, viene inviata ad un altro processo, quindi il risultato viene ritrasferito al processo iniziale. Per questo motivo è necessaria la parola chiave await.

Per default è possibile richiamare solo le API di FormIt incorporate.

Vantaggi:

➕ Il risultato è disponibile quando necessario.

➕ Consente di combinare tutto il codice in un unico file JS eseguito dal lato Web, senza script definiti in manifest.json.

Svantaggi:

➖ **** È necessario modificare tutte le chiamate asincrone con await; in caso contrario, ciò potrebbe provocare problemi.

➖ **** Si potrebbe verificare un rallentamento delle prestazioni a causa di await..

Metodo 4 (RegisterAsyncAPI)

*Disponibile solo in FormIt 2023.0 e versioni successive

Per chiamare una funzione definita dall'utente sul lato FormIt, è necessario registrare la funzione. Ad esempio:

Lato client (FormIt)

FormIt.RegisterAsyncAPI("HelloBlockAsync", "CreateBlock", "l, w, h");
// CreateBlock runs from FormIt.
HelloBlockAsync.CreateBlock = function(args)
{
    return { "Result" : "It Worked!!"};
}

Lato Web (HTML)

var result = await HelloBlockAsync.CreateBlock(l, w, h);

Vantaggi:

➕ Il risultato è disponibile quando necessario.

➕ Consente di combinare tutto il codice in un unico file JS eseguito dal lato Web, senza script definiti in manifest.json.

Svantaggi:

➖ **** È necessario modificare tutte le chiamate asincrone con await; in caso contrario, ciò potrebbe provocare problemi.

➖ **** Si potrebbe verificare un rallentamento delle prestazioni a causa di await..

Specificato utilizzando

Specificato utilizzando

Vedere per un esempio.

manifest.json
index.html
HelloBlockAsync