Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Navigation
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
Automotive - Ersatzteilbestellung Bremse
 Moderiert von: acronaut Produkt: Adobe Acrobat 3D V7  

Neue Diskussion

Antworten

Drucken
VerfasserBericht
acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 6 Okt 2006 05:28

Text übernehmen

Antworten
Ein sehr schönes Beispiel auf der Adobe Webseite, das eine der super Möglichkeiten zeigt, 3D-PDFs effektiv einzusetzen. Dieses Beispiel beruht auf dynamischen Formularen, die es ermöglichen über das selektieren von Teilen im 3D eine ersatzteilbestellung zusammen zu stellen.

Hier der Link:

http://www.acrobat3d.de/pdf/Adobe_Acrobat_3D_global-corp.pdf

Tomm
Member
 

Eintragen seit: 28 Nov 2006
Herkunft:  
Berichte: 5
Status:  Offline
 Geschrieben: 29 Nov 2006 07:26

Text übernehmen

Antworten
Hallo,
eigentlich sollte man ja Teile selektieren können. Geht bei mir nicht! Schade.
Tomm

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 6 Dez 2006 10:59

Text übernehmen

Antworten
Hi,

erste Frage: Werden die Teile in nem anderen Shading Mode dargestellt?
zweite Frage: Ist unter "Bearbeiten > Grundeinstellungen > JavaScript" die Option "Acrobat JavaScript aktiveren"  angeschalten?
Ansonsten würd mir jetzt erst mal auch nix mehr dazu einfallen.

Gruß,
Andreas Vogel

Tomm
Member
 

Eintragen seit: 28 Nov 2006
Herkunft:  
Berichte: 5
Status:  Offline
 Geschrieben: 8 Dez 2006 06:26

Text übernehmen

Antworten
Hallo,
die ShadingModes  werden gut dargestellt.
Javascript ist aktiviert.
Schwamm drüber.
Gruß Tom

Heiko
Member
 

Eintragen seit: 4 Apr 2007
Herkunft: Stuttgart, Deutschland
Berichte: 85
Status:  Offline
 Geschrieben: 11 Apr 2007 11:11

Text übernehmen

Antworten
Sehr geehrter Herr Vogel

das Beispiel zur Ersatzteilbestellung find ich sehr interessant.
Ich habe gesehen, dass die verschiedenen Produktdaten in einem
Array in der XML-Quelle eingetragen sind.
Meine Frage ist ob es auch möglich ist, diese Informationen aus einer Datenbank zu
holen? Für sieben Teile geht das natürlich schon wie im Beispiel augeführt problematisch wird es aber wenn mehr Teile die auch noch Änderungen unterzogen sind gehandhabt werden müssen.
Für Anregungen wäre ich sehr dankbar.

Mit freundlichen Grüßen
Heiko Winkler

Heiko
Member
 

Eintragen seit: 4 Apr 2007
Herkunft: Stuttgart, Deutschland
Berichte: 85
Status:  Offline
 Geschrieben: 19 Apr 2007 12:04

Text übernehmen

Antworten
Kann mir jemand erklären, wie in dem Beispiel die Anlage "Purchase Order.pdf"
geöffnet wird? Hab das komplette Ding auseinandergenommen und komm nicht drauf wie dieser Daniel Beardsley das macht.
Gruß Heiko

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 3 Mai 2007 20:28

Text übernehmen

Antworten
Hallo Heiko,

sorry, dass eine Antwort so lange auf sich hat warten lassen.... (grad ziemlich viel zu tun)

Also erst einmal zu der ersten Frage. (Anbindung an Datenbank) Dies ist ebenfalls möglich. Wird dann über den sog. Lifecycle Designer oder auch Adobe Designer, der beim Acrobat dabei ist realisiert. Hier ist es möglich auch eine Anbindung an eine Datenbank zu realisieren. Noch interessanter wird es dann natürlich, wenn man einen Blick auf die Adobe Lifecycle Serverprodukte wirft. Hier ist dann noch wesentlich mehr möglich (automatisches befüllen eines PDFs und zurückspielen von Daten in/aus Backend Systemen). Das bedeutet aber gleichzeitig auch, dass es erheblich teurer wird.

Jetzt zur zweiten Frage. David Beardsley öffnet das Bestellformular auf folgendem Wege:

Hinter der Verknüpfung "Add Part to Order" liegt ein JavaScript mit folgendem Inhalt:

var partno = this.getField("SelectedPartNumber").value;

if(partno !== "")
{
    var docname = "Purchase Order.pdf";

    if (FindOpenDoc(docname) == null)
        OpenFile("Untitled Object", docname);
      
    executeCommandAfterDocIsOpened(docname, "AddPartToOrder('" + partno + "');", 0)
}
 


Hier wird erst einmal die Teilebezeichnung aus dem Feld "SelectedPartNumber" ausgelesen.
Dann wrd das Attachment "Purchase Order.pdf" geöffnet. Vorher jedoch wird abgefragt, ob ein derartiges Dokument nicht schon geöffnet ist (er will damit natürlich verhindern, dass bei jeder Teileselektion ein neues Bestellformular geöffnet wird). Das tatsächliche Öffnen passiert dann mit dem Befehl "OpenFile("UntitledObject", docname);" Wobei docname vorher als Variable mit dem eigentlichen Dateinamen versehen wurde. Wenn Sie das selbst nachvollziehen wollen, ist das jedoch ein wenig tricky, da es nicht einfach damit getan ist, das Dokument als Attachment anzuhängen. Dieses muss auf speziellem Wege ins PDF verbracht werden, da man dem Dokument ansonsten keinen eindeutigen Namen vergeben kann, der von der Seite der Programmierung her erkannt wird. Ein weit einfacherer Weg ist, das Bestell-PDF als externe Datei zur Verfügung zu stellen.

Und nun wird es nochmal ein bisschen spezieller. (hört sich aber schlimmer an, als es wirklich ist) Die hinter diesem Button liegenden Funktionen (FindOpenDoc, OpenFile, executeCommandAfterDocIsOpened) sind keine Befehle, die im Acrobat JavaScript bereits vordefiniert sind. Dies sind Funktionsaufrufe, die David nochmal separat programmiert hat (hier wird es wieder einfacher, da man diese genau einmal in einer Vorlage benötigt und der Rest geht dann zukünftig ziemlich schnell und einfach). Die Funktionen befinden sich in der Dokument Ebene, also nicht hinter einem Button. Zugriff darauf hast Du über  "Erweitert" > "JavaScript" > "Dokument JavaScripts..."

Hoffe damit die Verwirrung ein wenig aufgeklärt zu haben...

Gruß,
Andreas Vogel

PS: Wenn Bedarf an einer derartigen Vorlage besteht freue ich mich jederzeit über eine Anfrage ;)

Letzte Änderung am 3 Mai 2007 20:53 von acronaut

Heiko
Member
 

Eintragen seit: 4 Apr 2007
Herkunft: Stuttgart, Deutschland
Berichte: 85
Status:  Offline
 Geschrieben: 9 Mai 2007 08:53

Text übernehmen

Antworten
Hallo Andreas

Die beiden Scripte welche du ansprichst sind (AddPartToOrder und Functions). Wie das gedacht ist, also das im einen Script die Funktionen "OpenFile" und "FindOpenDoc" erstellt werden und im anderen Script dann geprüft wird ob das Dokument geöffnet ist und der Inhalt von "SelectedPartNumber" über execute an das Formular gereicht wird, dass ist ja alles logisch.
Was ich aber nicht verstehe, ist dass wenn ich z.B. das Attachment lösche und dann aber wieder anhänge, die Verknüpfung nicht mehr gegeben ist.
Außerdem sollte man denken, dass man die Dateibezeichnung "Purchase Order.pdf" auch durch eine andere Dateibezeichnung ersetzen könnte und das neue Attachment dann geöffnet wird. Aber der JavaScript- Debugger benängelt dann immer das dieses "undifined object" nicht bekannt ist.
Hab aber jetzt eigentlich das Problem gelöst indem ich dem Bestellbutton die Action Gehe zu... und dann dein Trick auf das geöffnete Bestellformular zu verweisen, gelöst.

Also Danke nochmal für deine Mühen und bis dann

Gruß Heiko

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 10 Mai 2007 19:37

Text übernehmen

Antworten
Hallo Heiko,

ja, das mit den Attachments und dem Aufrufen dieser ist tatsächlich alles andere als banal. Du kannst dem Attachment, wenn du es händisch einfügst keinen wirklichen Namen vergeben. Das geht nur, wenn du es über ein z.B. VisualBasic tool von aussen reinschiebst. Dann kannst Du diesen Namen vergeben. Auf diesen Namen bezieht sich dann auch die Bezeichnung für den Aufruf der Datei. Ansonsten ist der Name des Attachments nur leer, oder "undefined" oder so. Da hilft es leider auch nichts, wenn Du dem Attachment im PDF noch nen Namen vergibst. Von daher am besten die Datei extern legen und dann von dortaus öffnen. Das geht komischerweise problemlos.

Gruß,
Andi

Letzte Änderung am 10 Mai 2007 19:56 von acronaut

Hendrik82
Member


Eintragen seit: 16 Apr 2007
Herkunft: Osnabrück, Deutschland
Berichte: 11
Status:  Offline
 Geschrieben: 24 Mai 2007 15:11

Text übernehmen

Antworten
Hallo,

liegt hinter dem 3D-Modell ein eingebettetes Java-Script? Falls ja, kann ich es mir dann anzeigen lassen?

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 30 Mai 2007 17:19

Text übernehmen

Antworten
Hi Hendrik,

die schnelle Antwort ist: Ja, Nein

Ja, hinter dem 3D liegt ein JavaScript und nein, man kann es leider nicht mehr anzeigen, wenn es mal drin steckt. Aber schau mal hier nach, da kommst Du vielleicht schon ein wenig auf die Idee, die dahinter steckt.

http://www.acronaut.de/forum8/57.html

Gruß,
Andi

Kaju
Member
 

Eintragen seit: 26 Sep 2007
Herkunft:  
Berichte: 2
Status:  Offline
 Geschrieben: 18 Feb 2008 14:19

Text übernehmen

Antworten
Hallo,

ich hab ähnlich wie in oben genanntem Beispiel eine 3D-Ersatzteilliste erstellt. Das heißt ich hab ein PDF mit einem 3D-Modell. Wenn ich auf ein Teil im Modell klicke werden mir auf der Seite verschiedene Informationen zu dem ausgewähltem Teil angezeigt. Soweit funktioniert alles ganz gut.

Um Informationen zu einem Teil zu bekommen muss ich jedoch (wenn ich die Datei neu geöffnet hab) immer zweimal in das Modell klicken bis ich die Infos bekommen. Wenn ich einmal von einem Teil die Infos bekommen hab klappts auch bei den anderen. Habt ihr ne Idee an was das liegen könnt? Das 3D-Modell ist aktiviert sobald die Seite geöffnet ist.

Gibt es außerdem die Möglichkeit ein Teil aus dem Modell per JS auszuwählen bzw. die Auswahl auch wieder aufzuheben?

Grüße

 

acronaut
Administrator


Eintragen seit: 13 Sep 2006
Herkunft: München, Deutschland
Berichte: 643
Status:  Offline
 Geschrieben: 18 Feb 2008 14:51

Text übernehmen

Antworten
Hi,

also das problem beim ersten Teil kenn ich auch.Passiert mir allerdings normalerweis enur dann, wenn ich zu schnell klicke. Ich denke, es liegt daran, dass der Acrobat das JavaScript erst durchgeht, nachdem die Szene vollkommen geladen ist. Das kann allerdings ein klein wneig länger dauern, als man es "mit dem Auge" mitbekommt.
Auszugehen ist ja aber eigentlich davon, dass der Kunde erst mal das Teil dreht und erst dann etwas auswählt. Daher habe ich mir da noch nie größere gedanken drüber gemacht.

Zum selektieren/deselektieren: Soweit ich es jetzt im kopf habe, ist ein deselektieren nicht möglich. Jedoch kannst Du die normale Auswahlfunktion komplett deaktivieren und eben mit der JavaScript Funktion overriden:

runtime.overrideSelection = true;


Und dann kannst Du einfach über das Einfärben eines Bauteils oder das Ändern des Rendermodus die Selektfunktion selbst abbilden.

Ein Bauteil einfach von "außen" hervorzuheben ist über JavaScript auch relativ einfach:

getAnnots3D(0)[0].context3D.scene.meshes.getByName("Bauteilname in Anführungszeichen"). material. diffuseColor. set(R,G,B); //R,G,B jeweils zwischen 0 und 1;

oder:

getAnnots3D(0)[0].context3D.scene.meshes.getByName("Bauteilname in Anführungszeichen"). renderMode = illustration;


Hoffe Dir damit geholfen zu haben.

Gruß,
Andreas Vogel

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 20 Mai 2008 10:25

Text übernehmen

Antworten
acronaut schrieb: Das tatsächliche Öffnen passiert dann mit dem Befehl "OpenFile("UntitledObject", docname);" Wobei docname vorher als Variable mit dem eigentlichen Dateinamen versehen wurde. Wenn Sie das selbst nachvollziehen wollen, ist das jedoch ein wenig tricky, da es nicht einfach damit getan ist, das Dokument als Attachment anzuhängen. Dieses muss auf speziellem Wege ins PDF verbracht werden, da man dem Dokument ansonsten keinen eindeutigen Namen vergeben kann, der von der Seite der Programmierung her erkannt wird. Ein weit einfacherer Weg ist, das Bestell-PDF als externe Datei zur Verfügung zu stellen.

...da man diese genau einmal in einer Vorlage benötigt und der Rest geht dann zukünftig ziemlich schnell und einfach)...

PS: Wenn Bedarf an einer derartigen Vorlage besteht freue ich mich jederzeit über eine Anfrage ;)
Hallo Andreas,

kannst Du bitte eine Vorlage für das "Dokument JavaScript" posten?

Ich möchte nämlich genau das Beispiel von "Adobe_Acrobat_3D_global-corp.pdf " erstellen und die Funktion "Add part to Order" komplett zum Laufen bringen.

Leider komme ich bei der Übergabe vom Formularfeldwert des jeweils ausgewählten 3D-Objekts an das Formularfeld im Bestellformular nicht weiter. :?

Idealerweise möchte ich die Version mit dem eingefügten Attachment analog zum "Adobe_Acrobat_3D_global-corp.pdf "-Beispiel nachbilden. Es soll also automatisch das Bestellformular geöffnet und das selektierte Bauteil inkl. Bestellnummer hinzugefügt werden.

Vielen Dank schon mal für Deine Antwort!

Letzte Änderung am 20 Mai 2008 10:33 von basho84

basho84
Member


Eintragen seit: 15 Mai 2008
Herkunft: Deutschland
Berichte: 25
Status:  Offline
 Geschrieben: 28 Mai 2008 14:14

Text übernehmen

Antworten
ok, die Dokumentenskripte hatte ich übersehen, die kann man ja einsehen, sowie die Skript des Buttons "AddPartToOrder".

Habe das Beispiel von "Adobe_Acrobat_3D_global-corp.pdf" teilweise nachgebaut.

Das Hauptdokument mit der Teileauswahl aus de 3D-Modell funktioniert prima.

Habe dann mittels dem Tool von Andreas Vogel (PDF Attachment Tool) die Anlage "Purchase Order.pdf" angehangen. Dies stammt aus dem Beispiel "Adobe_Acrobat_3D_global-corp.pdf". Die versteckten Felder "AddItemField" und "TempDate" habe ich sichtbar gemacht, um zu prüfen, ob der Klick auf den selbst erstellten "AddToOrder"-Button funktioniert.

Wenn ich die Anlage manuell öffne wird nun endlich der Wert vom Hauptdokument zur Anlage per

oDoc.xfa.form.form1.purchaseOrder.header.AddItemField.rawValue = partno; :D

Folgendes funktioniert noch nicht:

- Die Anlage wird nicht nach dem Klicken automatisch geöffnet, dies sollte doch eigentlich die Funktion

OpenFile("UntitledObjekt", docname);

erfolgen!? :?

- es erfolgt kein Eintrag mehr in die dynamische Tabelle der Bestellung

Wie Funktioniert das automatische Öffnen der Anlage per Java Script? (Habe ja die Methode mit dem VB-Tool von Andreas Vogel gewählt!?)

Warum erfolgt der dynamische Eintrag in der Original "Purchase Order" nicht mehr?

Letzte Änderung am 29 Mai 2008 16:24 von basho84


 Uhrzeit 16:49
Seite:    1  2  Nächste Seite Letzte Seite  





Powered by WowBB 1.7 - Copyright © 2003-2006 Aycan Gulez
Seite erstellt in 0.1136 Sekunden (27% DB + 73% PHP). 19 verarbeitete Abfragen.