| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Attribute einer dwg-Zeichnung extern bearbeiten (1516 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 30. Nov. 2016 12:54 <-- editieren / zitieren --> Unities abgeben:
Hi! Ich möchte einen Befehl erzeugen, der mir erlaubt Attribute in einer "Layoutzeichnung" zu bearbeiten. Ich bin soweit, dass ich mir alle zu ändernden dwgs auswählen kann und dann, alle Blöcke mit Attribute entsprechend Layouts im Datagridview angezeige. Mein Problem ist jetzt die Änderungen im Datagridview richtig zu übergebe. Zuerst gebe ich mir die DataTable(old) (wie im Bild) in einer static variable aus. Dann kann ich das Datagrid editieren und gebe eine DataTable aus. Dann vergleiche ich beide DataTable. Mein Problem jetzt ist, dass obwohl ich die DataTable old als static deklariert habe, wird sie dennoch modifiziert, nachdem ich im Datagrid Änderungen vornehme. Kennt jemand von Euch das Problem und kann es lösen
------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed | ÅF AB
[Diese Nachricht wurde von cadplayer am 30. Nov. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 30. Nov. 2016 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Zitat: Mein Problem jetzt ist, dass obwohl ich die DataTable old als static deklariert habe, wird sie dennoch modifiziert
Static bei der Deklaration einer Variablen bedeutet nicht "statisch" im Sinne von "unveränderbar". Auch wenn mit 5 DataGridViews auf die Eigenschaften einer Klasseninstanz hingegriffen wird, enthalten dennoch alle DataGridViews die gleichen Daten, ändern man eine Eigenschaft einer Klasseninstanz werden natürlich alle DataGridViews upgedatet, da ja alle auf die gleiche Instanz hingreifen. Wenn 2 DataGridViews verschiedene Daten anzeigen sollen, dann eben die von unterschiedlichen Klasseninstanzen, also vorher den Inhalt einer DataTable kopieren, damit man eine zweite Instanz bekommt, und nachfolgend einen DataGridView auf DataTable1 und den zweiten DataGridView auf DataTable2 zeigen lassen. ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 01. Dez. 2016 07:34 <-- editieren / zitieren --> Unities abgeben:
Besten Dank für deine Erklärung, dass war einleuchtend und logisch. Zu meinem Problem habe ich jetzt eine Lösung gefunden: Um die Veränderungen in einem Datagridview einzusammeln kann man die Ereignismethode: Code: private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
verwenden. Generell funktioniert das Programm, dass quasi von aussen die Attributwerte des jeiweiligen Blocks einer Zeichnung bearbeiten kann, was mir allerding noch Probleme bereitet ist, dass Attribute, die Textfields beinhalten, nicht veränderbar sind. Gibt es dafür eine Erklärung? ------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed | ÅF AB
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 02. Dez. 2016 13:26 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Zitat: dass Attribute, die Textfields beinhalten, nicht veränderbar sind
Bitte DWG und Code zeigen, damit das verständlich wird. Grundlegend: AttributeReference.TextString ist veränderbar (so es zum Schreiben geöffnet ist), unabhängig davon, ob schon ein oder mehrere Field-Definitionen enhalten sind. ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 09. Dez. 2016 11:33 <-- editieren / zitieren --> Unities abgeben:
Danke für deine Rückmeldung, ich habe wahrscheinlich nicht genau analysiert. Alles funktioniert, auch bei Attributen mit Textfields. Mich würde generell mal interessieren, wo die Grenzen beim Modifizieren von Autocad dateien liegen, ohne diese Öffnen zu müssen ? Hier ein kleiner Clip, wie das bisherige Programm zum Abändern von Blockattributen funktioniert. Ich lade zuerst alle Zeichnungen, lese deren Blöcke der Layouts und kann entsprechnend Blockwahl, die Attrbute ändern, ohne die Zeichnung je geöffnet zu haben klick
------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed | ÅF AB
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 09. Dez. 2016 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Zitat: Original erstellt von cadplayer: ...Mich würde generell mal interessieren, wo die Grenzen beim Modifizieren von Autocad dateien liegen, ohne diese Öffnen zu müssen ?...
Alles was du direkt in der DB manipulieren kannst, geht ohne das Öffnen im AutoCAD. Es geht also kein Command-Aufruf (sendstringtoexecute) Einschränkungen gibt es auch in den Bereichen, wo AutoCAD selbst auf die Anzeige der Zeichnung angewiesen ist: zum Bsp das Finden von Umgrenzungen oder manche Dinge bei der Layout-Manipulation. Grüße! Holger
------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 10. Dez. 2016 11:09 <-- editieren / zitieren --> Unities abgeben:
|