| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Eigenschaftssatzdefiniton Raum Erhebung (1996 mal gelesen)
|
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004
|
erstellt am: 06. Mai. 2011 13:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich benötige in ACA die Erhebung eines Raumes als Eigenschaftssatzdefiniton. Als automatische Quelle finde ich da nichts. In der Eigenschaftsdialogbox ist der Wert doch vorhanden. Komme ich da irgendwie dran? Gruß cadking ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007 ACA 2014 - English Win 7/x64
|
erstellt am: 06. Mai. 2011 18:07 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
Hallo, das ist ein wenig Fummelig. Du benötigst zuerst einmal die ObjectID als Eigenschaft, die findest Du als automatische Quelle. Dann benötigst Du eine Formeleigenschaft mit folgenden Inhalt:
Code:
on error resume next Set app=GetObject(,"AutoCAD.Application")Set aSpace = app.activedocument.ObjectIDToObject("[ObjectID]") Set aec = app.GetInterfaceObject("AecX.AecBaseApplication.6.5") aec.Init app pt1 = aec.ActiveDocument.Utility.ConvertToVariantArray(aSpace.location) RESULT = pt1(2)
Damit das funktioniert musst Du, nachdem Du das aus der Zwischenablage eingefügt hast das [ObjectID]löschen und an dieser Stelle mittels Doppelklick auf das automatische Eigenschaftsfeld wieder neu einfügen. Wenn alles richtig lief ist das [ObjectID] grau hinterlegt. Schönes Wochenende Holger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004
|
erstellt am: 07. Mai. 2011 08:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, zunächst mal vielen Dank für Deine Mühe, aber: dein Code gibt mir keinen Wert zurück. Als Ergebnis erhalte ich nur die Formel. Ich habe mal die Datei mit einigen JPG's als Zip-Datei angehängt. Gruß Stefan ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 07. Mai. 2011 15:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, ich habe den Fehler gefunden. Ich verwende MEP2010. der Code muss lauten: -------------------------------------------------------------------------------- on error resume next Set app=GetObject(,"AutoCAD.Application") Set aSpace = app.activedocument.ObjectIDToObject("[ObjectID]") Set aec = app.GetInterfaceObject("AecX.AecBaseApplication.6.0") aec.Init app pt1 = aec.ActiveDocument.Utility.ConvertToVariantArray(aSpace.location) RESULT = pt1(2) ------------------------------------------- Die Zeile: Set aec = app.GetInterfaceObject("AecX.AecBaseApplication.6.5") funktioniert nur in MEP/ACA 2011 Vielen Dank Stefan ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007 ACA 2014 - English Win 7/x64
|
erstellt am: 09. Mai. 2011 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
Hallo Stefan, ja das ist leider so ich habe aber hier einen funktionierenden Ansatz gefunden damit es in "allen" Versionen läuft:
Code:
Set app = GetObject(,"AutoCAD.Application") acadVerString = app.ActiveDocument.GetVariable("ACADVER") Select Case acadVerString Case "17.1s (LMS Tech)" aecBaseVer = "AecX.AecBaseApplication.5.5" Case "17.2s (LMS Tech)" aecBaseVer = "AecX.AecBaseApplication.5.7" Case "18.0s (LMS Tech)" aecBaseVer = "AecX.AecBaseApplication.6.0" Case "18.1s (LMS Tech)" aecBaseVer = "AecX.AecBaseApplication.6.5" Case "18.2s (LMS Tech)" aecBaseVer = "AecX.AecBaseApplication.6.7" Case Else aecBaseVer = "Unknown" End Select If aecBaseVer = "Unknown" Then RESULT = "Unknown Version (ACADVER): " & aecBaseVer Else Set aSpace = app.activedocument.ObjectIDToObject("[ObjectID]") Set aec = app.GetInterfaceObject(aecBaseVer) aec.Init app pt1 = aec.ActiveDocument.Utility.ConvertToVariantArray(aSpace.location) RESULT = pt1(2) End If
Getestet habe ich das mit ACA2008 und ACA2011 sollte aber auch bis ACA2012 laufen. Gruss Holger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004
|
erstellt am: 10. Mai. 2011 08:25 <-- editieren / zitieren --> Unities abgeben:
|