abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

Eigenes Bild 3D aus verknüpfter Bibliothek

Anonymous
Nicht anwendbar
Hallo zusammen,

ich habe einen Monitor programmiert, auf den man ein eigenes Bild als 3D Textur legen kann. Dazu hab ich mir den Code für das 3D Script aus dem ArchiCAD Monitor geklaut. Das sieht bei mir dann so aus:

!!!!!! Materialdefinition Auswahl eigenes Bild

DEFINE empty_fill "emptyFill"

screenSizeX = A - 2*R1
screenSizeY = ZZYZX -2*R1

IF gs_picture_custom and gs_picture_name <> "" THEN
DEFINE TEXTURE "custPict" gs_picture_name, screenSizeX, screenSizeY, 0, 0
DEFINE MATERIAL "custPict" 20,
0.8, 0.8, 0.8,
0.58, 0.85, 0.2, 0,
50,
0,
0.878401, 0.513481, 0.412253,
0, 0, 0,
0,
IND(fill, "emptyFill"), 1,
IND(texture, "custPict")
ELSE
DEFINE TEXTURE "defPict" 1, screenSizeX, screenSizeY, 0, 0
DEFINE MATERIAL "defPict" 20,
0.8, 0.8, 0.8,
0.58, 0.85, 0.2, 0,
50,
0,
0.878401, 0.513481, 0.412253,
0, 0, 0,
0,
IND(fill, "emptyFill"), 1,
IND(texture, "defPict")
ENDIF

! Ende Materialdefinition

! Bildschirm
ADD R1,0,R1

IF bPictureOnScreen THEN
IF gs_picture_custom AND gs_picture_name <> "" THEN
MATERIAL "custPict"
ELSE
MATERIAL "defPict"
ENDIF
ELSE
MATERIAL mat2
ENDIF

BLOCK A-R1*2,0.04,H-R1*2
VERT 0, 0, 0
VERT 1 - 2 * SYMB_MIRRORED, 0, 0 ! Correcting the Texture mapping for Picture in case of mirrored object
VERT 0, 1, 0
VERT 0, 0, 1
COOR 2+256, -1, -2, -3, -4
BODY 1
DEL 1
RETURN


Nun ist das Problem, dass in der Auswahlliste im Objekt ALLE zu findenden Grafiken enthalten sind. Also auch alle die in der Bibliothek von AC20 zu finden sind.

Gibt es eine Möglichkeit einen Dateipfad einzustellen? Oder es auf eine Bibliothek zu beschränken? Die Grafiken die ich zur Auswahl stellen möchte befinden sich in der gleichen Verknüpften Bibliothek wie der Monitor.

Super wäre es, wenn die Auswahl dynamisch bleibt, so dass ich auch neu dazu gekommene Grafiken nach einer Bibliotheksaktualisierung verwenden kann.

Danke schonmal!
1 ANTWORT 1
Anonymous
Nicht anwendbar
Soweit ich weiss, kannst Du die von Dir genutzte Art der Bildauswahl nur global über die gesamte Bibliothek nutzen.
Alternativen wären:
a) Manuelle Eingabe des Dateinamens
b) vorgegebene Auswahlliste über VALUES
c) Nutzen des File-Manager-Addons, wo man einen Pfad festlegen kann,
siehe Beispiel: http://www.selfgdl.de/addons/filemanager-io/input-3/
(2 Text-Parameter anlegen: dateiname + verz, ins verz irgendwas eintippen,
dann erscheint ein Auswahldialog)