| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Zeichnungs-Format aus Zeichnung in COMPASS übernehmen (873 mal gelesen)
|
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002
|
erstellt am: 08. Mrz. 2004 09:29 <-- editieren / zitieren --> Unities abgeben:
Ich möchte das Zeichnungs-Format aus der mit COMPASS verbundenen Zeichnung in ein COMPASS-Feld übernehmen. Ich habe in der Doku gelesen, daß mit AIMDCMPCALL im AutoCAD COMPASS-Funktionen aufgerufen werden können. Das Zeichnungs-Format habe ich über eine LISP-Routine ausgelesen und würde es als Parameter an die COMPASS-Routine anhängen. Bei mir geht es bisher nicht, mache ich etwas falsch? ------------------ Axel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 08. Mrz. 2004 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für axeld
Hallo Axel, keine Ahnung, ob du was falsch machst, weil ich nicht weiß, was du machst. Kenne den Befehl noch gar nicht, in welcher Doku ist denn der drin? Du kannst das ganze aber in AutoLips mit folgenden Befehlen umsetzten: ;;************************************************************* (SETQ wec_filename (GETVAR "DWGNAME")) ;; #(AIMKEYFROMPATH) sucht Dokument-Aimkey aufgrund des FILE_NAME (SETQ wec_aimkey (AIMDdderequest "AIM.COMPASS5 :DDE" "SYSTEM" (STRCAT "#(AIMKEYFROMPATH " wec_filename ")"))) (SETQ acad_value "Das Blatt-Format") ;; Über aimdDDEEXEC wird der Befehl ___ChangeField() an Compass übergeben. Es muss nur noch der Feldname ausgetauscht werden. (aimdDDEEXEC "AIM.COMPASS5.DDE" wec_aimkey (STRCAT "___ChangeField LONG_DESC=" acad_value)) ;; Aktualisieren des Datensatzes (aimdDDEEXEC "AIM.COMPASS5.DDE" wec_aimkey "___DBUtils sync current") ;;************************************************************* Ciao, WolfgangE
------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! [Diese Nachricht wurde von WolfgangE am 08. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002 WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen
|
erstellt am: 08. Mrz. 2004 11:13 <-- editieren / zitieren --> Unities abgeben:
|
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 08. Mrz. 2004 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für axeld
Verstehe. Mit AIMDCMPCALL kann man offensichtlich nur DBQ-Routinen aufrufen. Das heißt, du müsstest das ___ChangeField() (als Beispiel) in eine DBQ-Routine programmieren. Diese public-Funktion könntest du dann im AutoCad angeben. Da hier aber nur ein einfacher Shell-Befehl benötigt wird, reicht die vorher erwähnte Variante eigentlich aus. Würden aber mehrere Befehle nötig sein (vor allem, wenn man dann auf weitere Compass-Funktionen zugreifen will), rentiert sich die Sache mit dem AIMDCMPCALL. ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002 WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen
|
erstellt am: 08. Mrz. 2004 13:47 <-- editieren / zitieren --> Unities abgeben:
Wenn man es an die Schriftkopf-Funktion anhängt funktioniert es. Ich wollte es aber noch über den Jobserver laufen lassen, mit temporären Kopien der Zeichnungen, da wird der Datensatz nicht geändert. Ich habe noch etwas geändert: Ich hole den AIMKEY mit AIM.VOR bei jedem Start einer Zeichnung. Ist es mit dem Jobserver auch möglich? ------------------ Axel [Diese Nachricht wurde von axeld am 08. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 08. Mrz. 2004 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für axeld
Dann eben wie folgt: Der AutoLisp-Aufruf, um an Compass einen Shell-Befehl weiterzugeben, sieht so aus: (SETQ wec_aimkey (AIMDdderequest "AIM.COMPASS5:DDE" AIMKEY "Befehl")) Befehl war beim letzten Beispiel dieser: ___ChangeField Feld=Wert Aufgrund des im DDE-Aufrufs angegebenen AIMKEYs galt dieser für das Dokument, das eben diesem AIMKEY entspricht. Jetzt machst du den DDE-Aufruf allgemein: (SETQ wec_aimkey (AIMDdderequest "AIM.COMPASS5:DDE" "SYSTEM" "Befehl")) Nachdem du den AIMKEY vom Dokument hast, kannst du das Dokument jetzt über den Befehl selbst ansteuern. Dieser sieht jetzt so aus: ___ForRela(db=Folder_EngineeringDocument "AIMKEY=8747.23495" ___ChangeField Feld=Wert); Wenn ich deine Fähigkeiten richtig einschätze, genügen dir diese Angaben. Ansonsten einfach fragen. Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! [Diese Nachricht wurde von WolfgangE am 08. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002 WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen
|
erstellt am: 08. Mrz. 2004 14:47 <-- editieren / zitieren --> Unities abgeben:
|
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 08. Mrz. 2004 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für axeld
In der Entwicklerdokumentation, Suchbegriff "COMPASS als DDE – Server". Diese Doku finest du im doc.de-Verzeichnis im Compass-Programmverzeichnis: CMPDeveloper.pdf ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002 WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen
|
erstellt am: 08. Mrz. 2004 15:18 <-- editieren / zitieren --> Unities abgeben:
|