| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: eindeutige bauteil id (2071 mal gelesen)
|
adblue Mitglied .
Beiträge: 57 Registriert: 22.05.2009
|
erstellt am: 06. Feb. 2010 12:51 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 06. Feb. 2010 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
|
adblue Mitglied .
Beiträge: 57 Registriert: 22.05.2009
|
erstellt am: 06. Feb. 2010 13:35 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 06. Feb. 2010 13:53 <-- editieren / zitieren -->
Hi, >> da kommt nichts Bei mir schon, nach Eingabe der beiden Zeilen und zeigen eines Objekts sehe ich in der Befehlszeile (im Befehlsbereich) z.B.
Code: Objekt wählen:; IAcadLWPolyline: AutoCAD Lightweight Polyline-Schnittstelle (optimierte Polylinie) ; Eigenschaftswerte: ; Application (RO) = #<VLA-OBJECT IAcadApplication 01d3c1bc> ; Area (RO) = 1.69272 ; Closed = 0 ; ConstantWidth = 0.0 ; Coordinate = ...Indizierter Inhalt wird nicht angezeigt... ; Coordinates = (4.8391e+006 315842.0 4.8391e+006 315844.0 4.8391e+006 315844.0 ... ) ; Document (RO) = #<VLA-OBJECT IAcadDocument 106b46b0> ; Elevation = 0.0 ; Handle (RO) = "18CDA" ; HasExtensionDictionary (RO) = 0 ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 27baee9c> ; Layer = "0" ; Length (RO) = 6.88626 ; Linetype = "ByLayer" ; LinetypeGeneration = -1 ; LinetypeScale = 1.0 ; Lineweight = -1 ; Material = "ByLayer" ; Normal = (0.0 0.0 1.0) ; ObjectID (RO) = -5067248 ; ObjectName (RO) = "AcDbPolyline" ; OwnerID (RO) = -5235464 ; PlotStyleName = "ByLayer" ; Thickness = 0.0 ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 27af78d8> ; Visible = -1 T
Und da wären auch schon Eigenschaften mit xxxID enthalten. Für Dein Anliegen würde ich gerne Dich zitieren: 'bitte genauer beschreiben'. Denn ich sehe weder was Du eigentlich machen willst, noch Zeichnung, um zu erkennen, um welche Teile/Geometriearten es eigentlich geht (was für Dich 'Bauteile' sind), hätten wir nicht.
Mit diesen Grundlagen ist relativ schwer umzugehen oder eine gute Antwort zu liefern. Grundsätzlich: - willst Du z.B. einer Polylinie einen eigenen Wert als ID zuweisen, dann geht das nicht ohne Programmierung. - handelt es sich um Blöcke und Du hast ein Attribut dafür, dann kannst Du eine ID speichern. - muß die Eindeutigkeit zeichnungsübergreifend sein, sprich in Zeichnung A wird eine ID=32 vergeben, dann darf diese ID=32 nicht in Zeichnung B vorkommen, dann brauchst Du eine parallele Verwaltungsmöglichkeit dazu (Programm+Datenbank). Aber mit mehr Info's kann auch mehr Detailliertes hervorgekramt werden. - alfred - ------------------ www.hollaus.at |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 07. Feb. 2010 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
Das CAD-Handle ist innerhalb einer Datei eindeutig, dieses kannst du aber nur abfragen, nicht festlegen (festlegen macht das Programm selbst). Beim "verschieben" in eine andere Datei kann es sich jedoch ändern - Frage: Ist das interessant für dich oder egal, muß es nur innerhalb einer Datei eindeutig sein ? Mußt du es selbst festlegen können ? Handles abfragen: (cdr(assoc 5 (entget(car(entsel))))) Handels suchen (sssetfirst nil (ssadd (handent"hiermeinhandleangeben"))) oder cadwiesel.de suchtext.lsp Selbst festlegen: Hier bietet sich eigentlich nur XData an, die Werte kannst du selbst vergeben somit mußt du aber sogar die Eindeutigkeit selbst berücksichtigen und zudem gibt es keinerlei Boardmittel wie du damit effektiv arbeiten kannst, man benötigt also eigene Progrämmchen dafür. Wie hier ja schon gesagt wurde: Von DIR fehlen Infos damit man "bessere" Antworten geben kann ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adblue Mitglied .
Beiträge: 57 Registriert: 22.05.2009
|
erstellt am: 08. Feb. 2010 09:18 <-- editieren / zitieren --> Unities abgeben:
danke für die antworten bisher. ich erstelle mit vba hundert linien in autocad. jeder linie will ich nun als erkennungsmerkmal eine id (sprich zahl) zuordnen. wie mache ich das am besten mit einem vba-befehl.
danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 08. Feb. 2010 09:26 <-- editieren / zitieren -->
Hi, >> jeder linie will ich nun als erkennungsmerkmal eine id (sprich zahl) zuordnen cadffm hat's geschrieben: 'Hier bietet sich eigentlich nur XData an' (und mit XDATA oder EED als Suchbegriff findest Du schon einiges hier zum Thema Schreiben/Lesen von EED's). Unsere Rückfragen: 'muß die Eindeutigkeit zeichnungsübergreifend sein' Denn dann muss mehr als nur ein kleines VBA her. - alfred - ------------------ www.hollaus.at |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 08. Feb. 2010 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
|
adblue Mitglied .
Beiträge: 57 Registriert: 22.05.2009
|
erstellt am: 08. Feb. 2010 09:32 <-- editieren / zitieren --> Unities abgeben:
nein nicht zeichnungsübergreifend. aber die objectID liefert keine dauerhafte verbindung zwischen den objekten, weil sich der wert ständig ändern kann, steht in einem AUTOCAD-VBA buch. kann ich den beginn der ID selber festlegen? sprich erst am dem wert 400 aufwärts? und wie kann ich id wieder anfragen über vba? thx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 08. Feb. 2010 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
der Objecname kann sich ändern, nicht das Handle: dxfCode -1 kann sich ändern, dxfCode 5 nicht. (es sei denn das Objekt wird neu geschrieben, aber dann ist es eben im EDV-Sinne nicht mehr DAS Objekt.) Festlegen kann man das nicht - wurde ja bereits beschrieben und auch welche Suchbegriffe dich weiter bringen falls du selbst die Eindeutigkeit handeln willst: EED XDATA Hast du die ExpressTools installiert ? dann schau mal im Menü unter Tools nach, da findest du 2 Funktionen zu Xdatas, zum "testen" sicher nicht verkehrt. ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 08. Feb. 2010 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
|
adblue Mitglied .
Beiträge: 57 Registriert: 22.05.2009
|
erstellt am: 08. Feb. 2010 13:25 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 08. Feb. 2010 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für adblue
keine Ahnung, das hier ist ein AutoCAD-Forum, kein Naviswork habe aber eben mal gegoogelt und da wurde mir erklärt das es ein anderes Adesk-Produkt ist, dann habe ich mir die Produkt-Info angesehen und KEINE Programmierschnittstelle gefunden, wenn das wirklich so ist, dann lautet die Antwort: garnicht ! Andere Sache, bei der DU wieder die eindeutigkeit bestimmen müßtest: Kann Naviswork HYPERLINKS anzeigen (bzw. den Hyperlink-Text zu einem HLink) ? Dann könnte man hyperlinks auf die Linien setzen, aber das hört sich hier nicht praktikabel an. ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |