Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Bemassungen kopieren/einfügen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Bemassungen kopieren/einfügen (422 mal gelesen)
Kaanzler
Mitglied
Student


Sehen Sie sich das Profil von Kaanzler an!   Senden Sie eine Private Message an Kaanzler  Schreiben Sie einen Gästebucheintrag für Kaanzler

Beiträge: 16
Registriert: 12.02.2004

AutoDesk Map 3d 2007
WinXP
HP Plotter
Canon, Brother Drucker, HP Plotter
Office 2K
Visual Basic, C#

erstellt am: 26. Nov. 2008 09:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin,

ich habe da ein Problem:
Ich möchte alle Elemente eines Layers lesen und in eine Datenbank schreiben. Das klappt auch ganz wunderbar.
Aber: Wenn der Kunde eine Bemassung kopiert ( per dem Kontextmenü ) und dann irgendwo anders auf dem selben Layer einfügt, wird nicht nur die Bemassung neu erstellt, sondern auch Linienelemente, Text und Solid's erstellt.

Diese Elemente wandern dann ebenfalls in die Datenbank.
Das ist nicht erwünscht, weil die neue Bemassung ebenfalls drinsteht.
So werden dann Elemente "doppelt" gespeichert. 

Hat jemand eine zündene Idee?

Ich arbeite mit folgenden Events:
_BeginCommand
_EndCommand
_ObjectAdded
_ObjectErased
_ObjectModified


Vielen Dank für Vorschläge aller Art.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Ehrenmitglied V.I.P. h.c.
Maschinenbaukonstrukteur



Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2004DX Mechanical PP

erstellt am: 26. Nov. 2008 09:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kaanzler 10 Unities + Antwort hilfreich

Eine Bemaßung verweist nun einmal auf einen unbenannten Block, der Linien (Maß und Maßhilflinie),  Solid .. für die Pfeilspitze und MText für den Maßtext enthält ...

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 26. Nov. 2008 09:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ohne nachgesehen zu haben bilde ich mir ein, dass diese Bemassungs-'Teilobjekte' alle eine ParentID haben, diese zu prüfen (während ObjectAdded) sollte Dir dann die Entscheidung des weiteren Programmverlaufs ermöglichen.

Ich nehme auch an, dass BlockReferenzen kopieren, die AttributReferenzen inkludieren, auch abgefangen werden muss.

- alfred -

Kaanzler
Mitglied
Student


Sehen Sie sich das Profil von Kaanzler an!   Senden Sie eine Private Message an Kaanzler  Schreiben Sie einen Gästebucheintrag für Kaanzler

Beiträge: 16
Registriert: 12.02.2004

AutoDesk Map 3d 2007
WinXP
HP Plotter
Canon, Brother Drucker, HP Plotter
Office 2K
Visual Basic, C#

erstellt am: 26. Nov. 2008 11:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

vielen Dank für die Idee.

Ich hab mal aufgelistet welche Elemente erstellt/geändert werden:

Code:

OwnerName              OwnerID         iObjectID Typ
-----------------------------------------------------------------
"AcDbBlockTableRecord" 2128474208 2128474216 AcDbLine
"AcDbBlockTableRecord" 2128474208 2128474224 AcDbLine
"AcDbBlockTableRecord" 2128474208 2128474232 AcDbLine
"AcDbBlockTableRecord" 2128474208 2128474240 AcDbLine
"AcDbBlockTableRecord" 2128474208 2128474248 AcDbSolid
"AcDbBlockTableRecord" 2128474208 2128474256 AcDbSolid
"AcDbBlockTableRecord" 2128474208 2128474264 AcDbMText

"AcDbBlockTableRecord" 2130386168 2128474200 AcDbAlignedDimension


Die "Grund"-Elemente haben also nicht direkt etwas mit der Bemassung zu tun, oder?

Ich habe mich entschieden, einen neuen Layer zu verwenden, auf dem nur Bemassungen liegen dürfen.
Beim Speichern in die DB werden dann nur die Bemassungs-Elemente gesichert.

Für weitere Ideen bin ich dennoch immer offen!
Vielen Dank im Voraus.
Kaanzler.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Ehrenmitglied V.I.P. h.c.
Maschinenbaukonstrukteur



Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2004DX Mechanical PP

erstellt am: 26. Nov. 2008 11:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kaanzler 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kaanzler:
Die "Grund"-Elemente haben also nicht direkt etwas mit der Bemassung zu tun, oder?

Doch .. Erklärung siehe obigen Post von mir ..

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kaanzler
Mitglied
Student


Sehen Sie sich das Profil von Kaanzler an!   Senden Sie eine Private Message an Kaanzler  Schreiben Sie einen Gästebucheintrag für Kaanzler

Beiträge: 16
Registriert: 12.02.2004

AutoDesk Map 3d 2007
WinXP
HP Plotter
Canon, Brother Drucker, HP Plotter
Office 2K
Visual Basic, C#

erstellt am: 26. Nov. 2008 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas,

ich habe deine Antwort wohl gelesen. ( und auch verstanden )
Aber bietet AutoCad mir die Verbindung von der Bemassung zu den Grund-Elementen?
Die OwnerId der Grundelemente verweist ja augenscheinlich nicht auf das Bemassungselement.

Falls Du da eine Idee hast, wäre ich sehr dankbar.

MfG
Kaanzler

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 26. Nov. 2008 12:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

die OwnerID '2128474208' nehme ich an, zeigt genau auf den übergeordneten 'Bemassungsblock' (wie schon von CADmium beschrieben), die OwnerID '2130386168' zeigt wahrscheinlich auf den BlockTableRecord des Modellbereichs.

Du brauchst eigentlich nur den BlocktableRecord, auf den die OwnerID hinzeigt, öffnen und nachsehen, ob die Eigenschaft '.IsLayout' auf true steht, dann wird das Element dem Modellbereich (oder Papierbereich) hinzugefügt, dann hast Du auch Deine Layer-Korrekturmaßnahmen zu exekutieren.

Gegenprobe müßte die Eigenschaft BlocktableRecords.IsAnonymous sein (hab's nicht probiert und bin jetzt nciht sicher)

- alfred -

Kaanzler
Mitglied
Student


Sehen Sie sich das Profil von Kaanzler an!   Senden Sie eine Private Message an Kaanzler  Schreiben Sie einen Gästebucheintrag für Kaanzler

Beiträge: 16
Registriert: 12.02.2004

AutoDesk Map 3d 2007
WinXP
HP Plotter
Canon, Brother Drucker, HP Plotter
Office 2K
Visual Basic, C#

erstellt am: 26. Nov. 2008 12:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

Danke. Werd ich gleich mal probieren!
Sowas hab ich gesucht.
Danke. Danke.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz