| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PDM System exakt anpassen an Anwenderforderungen (GAIN Collaboration,PDM,PDM System,PLM,PLM System) |
Autor
|
Thema: Compass 4 (1730 mal gelesen)
|
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 23. Sep. 2003 11:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, wir benutzen in unserem Unternehmen Compass 4.0 mit AutoCAD 13 (ich weiß, daß es dafür von den Herstellerfirmen keinen Support mehr gibt). Im Compass bekomme ich jetzt beim öffnen des Großteils unserer Zeichnungen (nicht allen) die Meldung: "Warnung! Eine Kopie des Dokuments ist ausgelagert. Wollen Sie das Original trotzdem bearbeiten?" Ja / Nein Der Grund ist eigentlich auch bekannt, da vor längerer Zeit eine Fremdfirma mehrere Compassdatenbanken zu einer zusammengespielt wurden. Diese Fremdfirma gibt es aber nicht mehr und für ein Update auf eine neuere Compassversion oder Hilfe von einer anderen Fremdfirma zu besorgen, ist leider kein Geld vorhanden. Die Lösung für unser Problem haben wir auch schon: Mit Shift+F11 die Shell öffnen und dort die drei Befehle cmpfunc()___changefield S_ORT; cmpfunc()___changefield S_DATUM; cmpfunc()___changefield S_BEMERK; eingeben. Dies muß man allerdings bei jeder Zeichnung machen und das ist bei über 12000 Zeichnungen ziemlich aufwendig. Nun meine Frage, kann man nicht eine Script-Datei erstellen, die bei sämtlichen Zeichnungen die drei Befehle ausführt? Und wenn ja wie muß ich genau vorgehen? Vielen Dank im Voraus. Mit freundlichen Grüßen Jochen Lang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 27. Sep. 2003 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Skymon, die Lösung ist sehr einfach. Unter Ansicht, kannst Du alle Datensätze selektieren, und dann in Deiner Shelleingabezeile (Shift-F11) folgendes eingeben: cmpfunc() ___selection enumerate __MARK__ ___Changefield S_ORT; usw. Gruß Waldemar Piatkowski Contelos GmbH [Diese Nachricht wurde von WPiatkowski am 29. September 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus Jenkel Mitglied
Beiträge: 21 Registriert: 18.03.2002
|
erstellt am: 29. Sep. 2003 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Jochen, das von Waldemar vorgeschlagene Lösung funktioniert bei nicht. Ich weiß aber auch nicht warum. Ist auch egal. Wir behelfen uns bei diesem Problem mit 'nem "chirurgischen Eingriff": Wir benennen die Datenbank von .db in .dbf um und importieren sie in ACCESS (Bei 4.30 dbaseIII).(Vorher auch Sicherheitsgründen ne Kopie anlegen) Dort kann man in aller Ruhe globale Änderungen vornehmen, u.a. auch die Einträge der Auslagerung löschen. Anschließend Speichern, exportieren und wieder umbenennen. Dann als Compass-Admin die Datenbank reorganisieren und voila - fertig. Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 30. Sep. 2003 15:20 <-- editieren / zitieren --> Unities abgeben:
@ Waldemar: Hallo Waldemar, vielen Dank für Deine Antwort. Leider funktioniert bei uns der Befehl nicht. Bist Du sicher, daß der Syntax stimmt, da bei uns nach dem cmpfunc() kein Leerzeichen, bei Deinem Befehl aber eins kommt. Da ich leider keine Ahnung habe wie sich der Befehl zusammensetzt wäre es nett, wenn Du nochmal schauen könntest, ob er auch wirklich richtig wäre. Gruß Jochen @ Markus: Hallo Markus, auch Dir vielen Dank für Deine Antwort. Wenn ich allerdings die Datenbank in Access importieren will (Dateityp: dBASE III), bekomme ich einen unerwarteten Fehler vom externen Datenbanktreiber (10019). Verknüpfen kann ich die Datenbank allerdings (beim auswählen der Indexdatei (dBASE-Index) breche ich dann aber ab). Bei der Verknüpften Datenbank kann ich dann auch die Änderungen durchführen. Reicht eine solche Verknüpfung auch aus um die Datenbank korrekt zu ändern? Mache ich ihrgendetwas falsch und wenn ja was? Gruß Jochen [Diese Nachricht wurde von Skymon am 01. Oktober 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 01. Okt. 2003 22:15 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Jochen, hast Du Dir den Befehl kopiert oder abgetippt ? Bei dem Schlüsselwort __MARK__ sind nur 2 Unterstriche und nicht wie bei den Compass-Befehlen 3. cmpfunc() ___Selection enumerate __MARK__ ___ChangeField S_ORT; Gruß Waldemar Piatkowski
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 02. Okt. 2003 07:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Waldemar, ich habe den Befehl kopiert und in der Shelleingabezeile eingefügt. Lediglich ORT, DATUM, BEMERK habe ich gegeneinander ausgetauscht. Komischerweise schneidet die Shelleingabezeile (sie merkt sich den vorher ausgeführten Befehl) beim zweiten Aufruf den Befehl ab, auf: cmpfunc() ___Selection enumerate __MARK__ ___ChangeField S_OR Es ändert sich aber definitiv nichts an der Datenbank, d.h. die Meldung, die ich oben beschrieben habe kommt immer noch beim Großteil unserer Zeichnungen. Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 02. Okt. 2003 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Jochen, wenn Du mir die Tabelle zusenden kannst/darfst, kann ich Dir die Felder schnell leeren. Sonst schreibe ich ein Tool, dass Du selbst ausführen kannst (nächste Woche). Gruß Waldemar Piatkowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 02. Okt. 2003 08:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Waldemar, ich würde Dir die Tabelle gerne zusenden, darf aber leider nicht. Zudem wird in dieser Datenbank zur Zeit ständig gearbeitet. Das mit dem Tool wäre sehr Nett von Dir, wenn es Dir nicht zuviele Umstände macht. Nächste Woche bin ich aber nur am Montag und Dienstag bei der Arbeit, also nicht sauer sein, wenn ich erst in der darauffolgenden Woche antworte. Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 02. Okt. 2003 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo an alle, wenn der Import ins Access nicht funktioniert: die DBF-Datei kann man auch direkt mit Excel öffnen, genau so wie eine XLS (keine Konvertierung oder sonst was nötig). Vielleicht hilft das weiter. Ciao, WolfgangE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Motzi Mitglied Anwendungsprogrammierer
Beiträge: 298 Registriert: 16.06.2002 COMPASS Liebhaber, auch wenn es PSP heisst COMPASS Entwickler. 5x Windows 2003 Server, SQL 2005 AIP2009, SolidWorks 2009, EPLAN P8, Cadenas, Autodesk Productstream Professional 2009 pro, inforCOM 7.1 (ERP) d.3 DMS System
|
erstellt am: 02. Okt. 2003 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo alle, es gibt auch sehr gute Tools mit denen man DBF Dateien direkt ohne Import in Access oder Excel bearbeiten kann. DBFViewer Pro ist z.B. so ein Tool das hervorragend funktioniert. Findet man leicht im Internet. Aber um das abzukürzen. Der bei mir korrekt funktionierende Shell Befehl lautet: ___Selection(enumerate __MARK__ ___ChangeField S_ORT=) Der alte Syntax für ___ChangeField lautet anders, falls der neue mit dem '='-Zeichen nicht funtioniert dann also: ___Selection(enumerate __MARK__ ___ChangeField S_ORT Hier wird anstelle des '='-Zeichens ein Semikolon verwendet. Damit wird das Feld S_ORT bei allen selektierten Datensätzen gelöscht. ------------------ Gruß Motzi [Diese Nachricht wurde von Motzi am 02. Oktober 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 06. Okt. 2003 12:54 <-- editieren / zitieren --> Unities abgeben:
@ WolfgangE: Hallo Wolfgang, ich hab es mal so wie Du geschrieben hast an einer Kopie der DB versucht. Hätte aber noch Fragen dazu. Hier mein Vorgehen: - Datenbank in DBF umbenannt - mit Excel geöffnet - dann den Inhalt der Felder S_DATUM, S_BEMERK, S_ORT gelöscht - Speichern Jetzt die Frage, in welchem Format (dBASE II, dBASE III, dBASE IV), muss die DBF gepeichert werden. Wenn ich es dann in einem von diesen Formaten speichere kommt folgende Meldung: "CMPCAD.DBF kann Merkmale enthalten, die mit DBF 4 (dBASE IV) nicht kompatibel sind. Möchten Sie die Arbeitsmappe in diesem Format speichern?" Kann man diese Meldung ignorieren oder kann es später zu Problemen kommen? Gruß Jochen @ Motzi: Hallo Motzi, das mit den Shell-Befehlen klappt leider bei mir nicht. Ich bekomme jedesmal eine Fehlermeldung. Ich habe die Fehlermeldungen mal als PDF-Datei angehängt. Das mit dem DBFViewer Pro (hab mir die Trial mal runtergeladen) ist ja schön und gut, aber ich habe leider keine SQL-Kenntnisse und kann daher die Felder S_DATUM, S_BEMERK, S_ORT nicht leeren. Zudem werde ich am Anfang gefragt, einen Table Typ zu wählen (Clipper, FoxPro oder HiPer-Slx) und kann damit absolut nichts anfangen. Ich weiß ich bin ein Newbie in Sachen Compass und werde wohl den einen oder anderen in diesem Forum zu kräftigem Kopfschütteln veranlassen, hoffe aber, daß ihr doch noch ein bißchen Geduld mit mir habt. Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 06. Okt. 2003 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Zitat: Original erstellt von Skymon: ... Kann man diese Meldung ignorieren oder kann es später zu Problemen kommen? ...
Hallo Skymon, weiß ich leider nicht. Rein vom Inhalt der Daten dürfte es zu keinen Problemen kommen. Ob es hier irgendetwas gibt, auf das Compass abfragt, weiß ich nicht, kann ich mir aber nicht wirklich vorstellen. Am besten eine Kopie der DB-Datei umbenennen und bearbeiten und dann einfach mal mit der probieren. Wenn es zu Problemen kommt, kannst du sofort wieder das Original einspielen.
Ciao, WolfgangE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Motzi Mitglied Anwendungsprogrammierer
Beiträge: 298 Registriert: 16.06.2002 COMPASS Liebhaber, auch wenn es PSP heisst COMPASS Entwickler. 5x Windows 2003 Server, SQL 2005 AIP2009, SolidWorks 2009, EPLAN P8, Cadenas, Autodesk Productstream Professional 2009 pro, inforCOM 7.1 (ERP) d.3 DMS System
|
erstellt am: 06. Okt. 2003 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Skymon, probier mal den folgenden Befehl aus cmpfunc()___selection enumerate __MARK__ ___changefield S_ORT; Ich habe bei uns im Keller die älterste COMPASS Version 4.0.x abgestaubt und installiert. Oben stehender Befehl hat hier funktioniert. Wenn der bei Dir nicht geht, dann habt Ihr keine Version 4.0 sondern irgend was anderes. In dem Fall kannst Du mir die Datenbank schicken und ich lösch Dir die Felder. Das Ergebnis bekommst Du dann umgehend zurück. ------------------ Gruß Motzi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 06. Okt. 2003 14:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Motzi, den Befehl habe ich mal ausprobiert, leider funktioniert er auch nicht. Er bringt zwar keine Fehlermeldung aber es tut sich überhaupt nichts. Ist übrigens der gleiche, bis auf das Leerzeichen wie der von Waldemar. Unsere Version habe ich nochmal überprüft, wir haben die 4.02 (Bildschirmcopy habe ich als PDF-Datei angefügt). Ich würde Dir gerne die Datenbank zuschicken, wie ich aber schon Waldemar geschrieben habe, darf ich leider nicht (werde das aber nochmal morgen abklären). Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Motzi Mitglied Anwendungsprogrammierer
Beiträge: 298 Registriert: 16.06.2002 COMPASS Liebhaber, auch wenn es PSP heisst COMPASS Entwickler. 5x Windows 2003 Server, SQL 2005 AIP2009, SolidWorks 2009, EPLAN P8, Cadenas, Autodesk Productstream Professional 2009 pro, inforCOM 7.1 (ERP) d.3 DMS System
|
erstellt am: 06. Okt. 2003 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Skymon, die ist noch älter als unsere Version. OK. Wenn das mit der Datenbank klappt ist das wohl die beste Lösung die noch übrig ist. Eine Bearbeitung mit Excel ist nicht so toll man muß halt immer darauf achten ob man im ANSI oder OEM Format abspeichert. Bei DBFViewer wählt man am Anfang FoxPro aus. Danach wird dir Kopie der Datenbank geladen und über das Menü Table der Eintrag 'UPDATE multiple records ...' ausgewählt. Hier das gewünschte Feld über die Auswahl wählen dann bei WITH den gewünschten Werk eintragen und bei FOR den vorherigen Wert oder nichts wenn es für alle gelten soll. Im unteren Feld steht dann z.B. UPDATE S_ORT WITH "" FOR all records. Mit Begin Update starten und freuen... :-) Das für die 3 Felder durchführen und die Sache ist erledigt. ------------------ Gruß Motzi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WPiatkowski Mitglied ApplikationEngineer
Beiträge: 192 Registriert: 18.10.2002 AT 286, EGA-Karte, 640KB RAM, 51/4" Floppy, 10MB Festplatte
|
erstellt am: 06. Okt. 2003 16:08 <-- editieren / zitieren --> Unities abgeben: Nur für Skymon
Hallo Skymon, anbei ein Tool (DBU.EXE) in der zip-Datei.(Dir TXT müsstest Du in ZIP umbenennen). Am besten wenn Du mich anrufen würdest und wir gehen die Sache gemeinsam durch. Tel.05108-92 94 33 Gruß Waldemar Piatkowski
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Skymon Mitglied
Beiträge: 7 Registriert: 23.09.2003
|
erstellt am: 13. Okt. 2003 14:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für Deine Beschreibung, Motzi. Gefreut habe ich mich dann auch, aber es kam leider das große Erwachen, als ich folgende Fehlermeldung bekam: Error while updating record # 10576 Versucht man aus dem Menü UPDATE Multiple Records... raus zu kommen, kommt folgende Meldung: '0.0' is not a valid timestamp. Ich habe dann das gleiche nochmal mit dem Tool von Waldemar probiert und dann hats funktioniert. Also allen Mitwirkenden nochmals vielen Dank. Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |