carmelli76 Geschrieben 14. Juni 2009 Teilen Geschrieben 14. Juni 2009 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')) Viele Grüsse. http://cad-treasures.blogspot.com/">http://cad-treasures.blogspot.com/ Link zu diesem Kommentar
klr-landarch Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 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
carmelli76 Geschrieben 15. Juni 2009 Autor Teilen Geschrieben 15. Juni 2009 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. Viele Grüsse. http://cad-treasures.blogspot.com/">http://cad-treasures.blogspot.com/ Link zu diesem Kommentar
klr-landarch Geschrieben 15. Juni 2009 Teilen Geschrieben 15. Juni 2009 hallo carmelli76, es wäre wirklich hilfreich wenn du das script posten könntest ... anhand deiner beschreibung fällt es mir schwer das ganze nachzuvollziehen ... gruß kim Windows 7/10 Prof. (x64), VW 2016/2017 Landschaft Link zu diesem Kommentar
carmelli76 Geschrieben 15. Juni 2009 Autor Teilen Geschrieben 15. Juni 2009 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/ Viele Grüsse. http://cad-treasures.blogspot.com/">http://cad-treasures.blogspot.com/ Link zu diesem Kommentar
klr-landarch Geschrieben 16. Juni 2009 Teilen Geschrieben 16. Juni 2009 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
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden