Zum Inhalt springen

Hilfe für Vectorscripts


carmelli76

Empfohlene Beiträge

Hallo,

 

Hoffentlich kann jemand helfen.

Ich schreibe gerade ein VectorScript, das unter anderem all vorhandenen Symbole in einen neu kreierten Symbol-Ordner schieben soll. Irgendetwas klappt nicht.

Mein Script hat schon einen neuen Symbolordner hergestellt auf dessen Handle nun mit 'LObject' zugegriffen werden soll. Exemplarisch probiere ich es mit dem Zugriff auf das Handle des Symbols mit dem dem Namen 'Symbol-1'. Siehe Scripzeile unten. Ich habe schon alles mögliche ausprobiert, es funktioniert nicht. Es kommt auch keine Fehlermeldung. Was mache ich falsch? Und gibt es eine Möglichkeit, sich irgendwo eine LogDatei anzuschauen, um zu sehen, was das Script eigentlich gemacht hat und was nicht?

 

InsertSymbolInFolder (LObject, GetObject ('Symbol-1'))

Link zu diesem Kommentar

hallo carmelli76,

 

es ist natürlich schwierig den fehler zu finden wenn man die gesamtstruktur des scriptes nicht kennt, aber ich vermute mit "LObjekt" funktioniert es nicht, da sich diese prozedur auf das letzte gezeichnete objekt im document bezieht und das kann natürlich auch etwas anderes als ein symbol sein ... außerdem verwendest du "LObjekt" als target in "InsertSymbolInFolder" was natürlich auch nicht sein kann. hier müsste natürlich der entsprechende ordner declariert werden.

hast du denn eine abfrage schleife geschrieben?

 

gruß

kim

Windows 7/10 Prof. (x64), VW 2016/2017 Landschaft

Link zu diesem Kommentar

Also, wie gesagt "InsertSymbolInFolder" ist Teil eines Scriptes. Auf "LObject" wollte ich zugreifen, weil ich kurz vorher auch mit dem Script einen neuen Symbolordner angelegt habe und er doch das letzte Object sein sollte. "LObject" steht für "Target Folder". Ich weiss sonst leider keine andere Möglichkeit, and das Handle eines bestimmten Ordners ranzukommen...

 

Leider hab ich das gesamte Script gerade zu Hause liegen, könnte es aber bei Bedarf noch posten.

Link zu diesem Kommentar

so, also hier ist nun der code (wie gesagt, es scheint so als ob gar nix passiert. das einzige, was passiert ist, dass der Ordner mit dem Namen "Import20-Symbols" angelegt wird):

 

{move symbols to folder}

PROCEDURE MoveSymToFolder;

 

const

Prefix = 'Import20-';

 

kSymb = 16;

kDefSymbFolder = 0;

 

var

listID, numItems: LONGINT;

CurFolderName: STRING;

targetFolder :HANDLE;

CurSymbolName: STRING;

SymbolNumber: LONGINT;

CurSymbolNumber: LONGINT;

CurSymbolObject: HANDLE;

symbolDef :HANDLE;

 

BEGIN

 

CurFolderName := CONCAT(Prefix, 'Symbols');

NameObject (CurFolderName);

BeginFolder;

EndFolder;

{targetFolder := LNewObj;}

 

BEGIN

 

listID := BuildResourceList(kSymb, kDefSymbFolder, '', numItems);

SymbolNumber := ResourceListSize(listID);

CurSymbolNumber := 1;

 

 

BEGIN

CurSymbolName := GetNameFromResourceList(listID, CurSymbolNumber);

CurSymbolObject := GetObject (CurSymbolName);

InsertSymbolInFolder (LObject, GetObject (CurSymbolObject));

CurSymbolNumber := CurSymbolNumber + 1;

END;

 

END;

 

 

 

END;

 

Run(MoveSymToFolder);

 

 

Vielen Dank im voraus für die Hilfe.

http://cad-treasures.blogspot.com/

Link zu diesem Kommentar

hallo carmelli76,

 

wie ich schon vermutet hatte dein "LObject" in "InsertSymbolInFolder" hat keinen bezug zum erstellten symbolordner.

ändere folgendes:

{targetFolder := LNewObj;}

targetFolder := GetObject (CurFolderName); -> dein erstellter ordner wird so zum :handle.

InsertSymbolInFolder (LObject' date=' GetObject (CurSymbolObject));[/quote']

InsertSymbolInFolder (targetFolder, CurSymbolObject); -> CurSymbolObject hast du schon eine zeile vorher declariert deshalb brauchst du "GetObject" nicht nochmal anwenden. der "targetFolder" hat jetzt bezug zu deinem ordner.

 

du musst dein script aber noch ziemlich überarbeiten, denn es funktioniert nur mit einem symbol. sobald mehrere symbole vorhanden sind werden nur noch neue ordner mit einem defaultnamen erstellt und die weiteren symbole bleiben wo sie sind ...

du musst also eine abfrage-schleife schreiben, die prüft ob schon ein ordner mit dem entsprechenden namen vorhanden ist und du musst per abfrage prüfen wieviele symbole im dokument vorhanden sind und ob sie auch in den ordner verschoben werden sollen oder ob wieder ein neuer ordner erstellt werden soll usw..

ja, das ganze wird dann immer komplexer ...

viel spaß weiterhin

 

gruß

kim

Windows 7/10 Prof. (x64), VW 2016/2017 Landschaft

Link zu diesem Kommentar

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 für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      20,4Tsd
    • Beiträge insgesamt
      101,1Tsd
×
×
  • Neu erstellen...