Jump to content
Melde dich an, um diesem Inhalt zu folgen  
erzet49

Einfachstes Vectorscript - Variablentyp-Problem

Empfohlene Beiträge

Hallo Forum, ... äh ... Hallo Kim ...

 

Bei meinem 1,5ten Versuch mit VectorScript etwas eigenes hinzubekommen, bin ich sogleich steckengeblieben:

 

Ich würde gerne mit Scripthilfe ein Tastenkürzel hinbekommen um folgenden Wert zu steuern:

Programmeinstellungen -> Bearbeiten -> Objekte um Raster verschieben -> Eigener Wert

 

Hier erstmal die Kernproblem-Fehlermeldung dabei:

 

Line #3: SetPref(89,1.0) ;

|

{ Error: Expected a Boolean. }

 

Nun der Reihe nach:

Im VectorScript Language Guide fand ich diese Liste: Appendix F - Preference Selectors - dort finde ich:

 

Show Other Objects While In Group --- 14 --- TRUE or FALSE

Zoom Line Thickness --- 9 --- TRUE or FALSE

Custom Move Distance --- 89 --- REAL

 

Die ersten beiden konnte ich (geholfenerweise) in einem sehr einfachen Script (bin weitgehend ahnungslos diesbzgl.) erfolgreich verwenden.

Nun wollte ich das abwandeln und eben den 89-Wert per Script manipulieren - das mündet in der oben genannten Fehlermeldung und ich denke: Hä?! - wieso will der einen Boolean, 89 steht doch für einen Real?

 

Genau die genannte Fehlermeldung kriege ich so (beim Kompilieren):

 

 

PROCEDURE Verschiebung1m10m;

BEGIN

SetPref(89,10.0);

END;

RUN(Verschiebung1m10m);

 

 

Eigentlich will ich so was:

 

 

PROCEDURE Verschiebung1m10m;

{Toggelt eine Programmeinstellung zwischen 1 und 10, und zwar den Verschiebewert, den man dann mit den Pfeiltasten bewirken kann.}

BEGIN

if getpref(89)=1.0 then

SetPref(89,10.0);

Else

SetPref(89,1.0);

END;

RUN(Verschiebung1m10m);

 

 

Nun noch kurz, warum ich das will:

Die Verschiebemöglichkeiten Strg+M, Infopalette, oder Werzeug Verschieben find ich alle recht zäh und oft benutze ich die 1m-Verschiebung mit Strg+Shift+Pfeil; nun würde ich da den Wert gerne schnell auf 10m umschalten können.

Oft nutze ich das Tastenkürzel zur Steuerung der außerhalb-Gruppe-Objekte-Sichtbarkeit, möglich durch Tastenkürzel für Programmeinstellungen; entsprechend habe ich auch ein Tastenkürzel einrichten können, um die Liniendicken-Sichtbarkeit schnell zu steuern (mein 0,5ter Versuch mit VectorScript etwas eigenes hinzubekommen).

 

Gruß, rz.

Diesen Beitrag teilen


Link zum Beitrag

hallo rz,

 

da du mich ja quasi direkt fragst möchte ich dir auch keine antwort schuldig bleiben ... ;)

 

Hier erstmal die Kernproblem-Fehlermeldung dabei:

 

Line #3: SetPref(89,1.0) ;

|

{ Error: Expected a Boolean. }

die function "Pref" ist eine boolsche funktion deshalb beschwert sich vectorscript natürlich!

der index "89 - custom move distance" ist aber eine "PrefReal" function! erkennbar im appendix f in der vierten spalte.

folglich musst du die prozeduren "GetPrefReal" und "SetPrefReal" verwenden!

 

dein script müsste also wie folgt aussehen:

 

PROCEDURE Verschiebung1m10m;

 

BEGIN

 

IF GetPref(136)=TRUE then {als abfrage, ob die option auch aktiv ist}

 

IF GetPrefReal(89)=1000 then {der wert wird in millimeter angegeben}

SetPrefReal(89,10000)

Else

SetPrefReal(89,1000);

 

END;

 

RUN(Verschiebung1m10m);

 

gruß

kim

 

p.s.: schau dir das nächste mal den appendix f etwas genauer an ... ;)

viel erfolg!

Diesen Beitrag teilen


Link zum Beitrag

Hallo Kim,

 

Danke! Hat auf Anhieb geklappt!

 

da du mich ja quasi direkt fragst möchte ich dir auch keine antwort schuldig bleiben

 

Nun, das war etwas frech, aber andererseits dachte ich, es wäre heuchlerisch zu verschweigen mit wessen Antwort ich da gerechnet hatte.

 

p.s.: schau dir das nächste mal den appendix f etwas genauer an ...

 

Hm, tja, ich befürchte das Problem ist grundsätzlicherer Natur - ich habe zu wenig Ahnung davon. Ich hab' zwar mal etwas Pascal gelernt, ist aber zu blass, um noch genug von Funktionen und Parametern zu wissen. Ich dachte halt: so eine kleine copy&paste-Abwandlung, das ist doch bestimmt kein Problem...

 

Immerhin hast Du mich ja in Kontakt mit VektorScript gebracht...

 

Gruß, rz.

Diesen Beitrag teilen


Link zum Beitrag

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto im Vectorworks Forum erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesem Inhalt zu folgen  
×