abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

Längenveränderung / Dehnung

Anonymous
Nicht anwendbar
Ich würde gerne mein LED-Profil als GDL abspeichern, sodass ich die Länge durch ein Parameter verändern kann.

Wie muss/kann/sollte ich dies einstellen?


Hier der bisherige Skript:
(Symbol ist 2D mit Linien und Schraffuren)


fktr = GLOB_SCALE / 100
MUL2 fktr,fktr

IF leuchtmittel = 1 THEN
FRAGMENT2 2,0


ENDIF

FRAGMENT2 1,0

DEFINE STYLE "TextID" "Roboto light", 1.5,5,0
PEN 166

sts = request ("View_Rotangle", "", VIEW_ROTATION)

ADD2 0., 0.250
MUL2 1, 1-2*SYMB_MIRRORED
ROT2 180*SYMB_MIRRORED - SYMB_ROTANGLE - VIEW_ROTATION
STYLE "TextID"
TEXT2 0.0,0.0,id_nummer
5 ANTWORTEN 5
runxel
Legend
Das 'MUL2' Kommando ist schon ganz richtig.
Wenn es nur in eine Richtung gestaucht/gedehnt werden soll, dann darfst du natürlich nicht in beiden Richtungen deinen 'fktr'-Faktor haben.
Bei dir wird es momentan ja einfach nur skaliert.
Lucas Becker | AC 27 on Mac | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Ma_Scht
Advocate
Warum benutzt Du nicht einfach die Parameter A bzw. B?

!!!2d-Script
RECT2 -0.5*A, -0.5*A, 0.5*A, 0.5*A
unID = 1
HOTSPOT2 0,0,unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, 0.5*A, -0.5*A, unID : unID=unID+1
HOTLINE2 0.5*A, -0.5*A, 0.5*A, 0.5*A, unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, 0.5*A, 0.5*A, unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, -0.5*A, 0.5*A, unID : unID=unID+1

Wenn Du den Y-Wert der den Parameter B ersetzt, kannst Du individuell strecken ohne die MULerei
Anonymous
Nicht anwendbar
Habe es nun folgendermassen gelöst:

fktrx = GLOB_SCALE / 100 * A
fktry = GLOB_SCALE / 100
MUL2 fktrx,fktry



"shadow" wrote:
Das 'MUL2' Kommando ist schon ganz richtig.
Wenn es nur in eine Richtung gestaucht/gedehnt werden soll, dann darfst du natürlich nicht in beiden Richtungen deinen 'fktr'-Faktor haben.
Bei dir wird es momentan ja einfach nur skaliert.


"Ma_Scht" wrote:
Warum benutzt Du nicht einfach die Parameter A bzw. B?

!!!2d-Script
RECT2 -0.5*A, -0.5*A, 0.5*A, 0.5*A
unID = 1
HOTSPOT2 0,0,unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, 0.5*A, -0.5*A, unID : unID=unID+1
HOTLINE2 0.5*A, -0.5*A, 0.5*A, 0.5*A, unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, 0.5*A, 0.5*A, unID : unID=unID+1
HOTLINE2 -0.5*A, -0.5*A, -0.5*A, 0.5*A, unID : unID=unID+1

Wenn Du den Y-Wert der den Parameter B ersetzt, kannst Du individuell strecken ohne die MULerei
Anonymous
Nicht anwendbar
aber warum die Länge von LED-Profilen vom eingestellten Maßstab (GLOB_SCALE) abhängt ist mir schleierhaft.

Bei 1:100 funzt alles noch, weil:
fktrx = GLOB_SCALE / 100 * A
fktrx = 100 / 100 * A
fktrx = A
fktry = GLOB_SCALE / 100
fktry = 100 / 100
fktry = 1
MUL2 fktrx,fktry gleich MUL2 A,1

Bei 1:50 sind die LED-Profile nur noch halb so lang und halb so dick.
Anonymous
Nicht anwendbar
"koma" wrote:
aber warum die Länge von LED-Profilen vom eingestellten Maßstab (GLOB_SCALE) abhängt ist mir schleierhaft.

Bei 1:100 funzt alles noch, weil:
fktrx = GLOB_SCALE / 100 * A
fktrx = 100 / 100 * A
fktrx = A
fktry = GLOB_SCALE / 100
fktry = 100 / 100
fktry = 1
MUL2 fktrx,fktry gleich MUL2 A,1

Bei 1:50 sind die LED-Profile nur noch halb so lang und halb so dick.


Vielen Dank für den Einwand. Habe es nun so gemacht :

fktrx = GLOB_SCALE / 100 * (A *100 / GLOB_SCALE)
fktry = GLOB_SCALE / 100
MUL2 fktrx,fktry

Ich weiss etwas ein bastel, aber funktioniert 😉

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen