| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ATTSYNC (2516 mal gelesen)
|
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007
|
erstellt am: 25. Sep. 2009 13:26 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bin gerade mit vb.net unterwegs. Ich füge mehrere Blöcke in ein Zeichnung an unterschidelichen Positionen und mit unterschiedlichem Drehwinkel ein. Jedem der Einfügungen verpassen ich den Attributen noch ihre Werte. Das funktioniert auch alles soweit super. Aber, die Attribute sind falsch gedreht, erst wenn ich in der Zeichnung ein ATTSYNC aufrufe, sieht es korrekt aus. Da ich die Zeichnung jedoch via dbx beschreibe kann ich mir nicht mit einem Sendcommand o.ä. helfen. Daher die Frage: Gibt es eine attsync funktion in vb oder was macht das ATTSYNC genau. Ich habe schon mit allen möglichen Werten der Blockdefinition/ Blockreferenz sowie den Attributreferenz und -defintion rumexperimentiert, ohne zufriedenstellenden Ergebniss. Das komische ist, dass es mit einer anderen Blockdefninition funktioniert. Einziger Unterschied der Blockdefinition ist (neben dem Namen) das die Attribute einen andere Textausrichtung und Drehung haben. Gruss Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 25. Sep. 2009 15:58 <-- editieren / zitieren -->
Hi Holger, woran arbeitest Du jetzt, VBA oder ObjectARX, weil Du einen vermeintlich unbedeutenden Hinweis zu einer DBX machst. Fügst Du eine BlockReference in eine Datenbank ein, die im Editor geöffnet ist, darf eigentlich kein Attsync notwendig sein. Fügst Du eine BlockReference in eine Datenbank ein, die NICHT im AutoCAD-Editor geöffnet ist, dann sind, wie Du schon bemerkt hast, alle Attributreferenzen, deren Ausrichtung nicht vorgabemäßig (Links/Unten) ist, so plaziert als wären diese Links/Unten. Ich sehe das zwar grundsätzlich als Bug, aber kann auch dabei verstehen, dass die Länge eines Textes (der Zeichen im Attributswert) deutlich schwerer zu ermitteln ist, wenn diese nicht graphisch zur Verfügung steht und damit gemessen werden kann (oder eben nicht gemessen werden kann). Da ist aber auch kein '_atttsync' erforderlich, es wirken auch andere Mittel wie z.B. mit '_ddatte' die Attributsbearbeitung öffnen und wieder schliessen. Lass mal wissen, wie Dein Workflow jetzt aussieht und was jetzt Deine Programmierbasis ist. - alfred - ------------------ www.hollaus.at |
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007
|
erstellt am: 25. Sep. 2009 16:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred, sorry wegen der missverständlichen Definition es muss wohl ObjectARX heissen. Sprich die Zeichnung wird nicht im Editor geöffnet. Programmieren tu ich mit Visual Basic 2008 Express Edition und muss sagen das es Liebe auf den ersten Blick war. Ich habe vorher etwas VBA gemacht, auch schon mal gelispelt(aber nix grosses). Ich versuche mal mein Problem zu beschreiben. Ich ordne Blockreferenzen in einem Kreis an. Jeder Block hat zwei Atrribute. Das klappt auch wunderbar. Aber ich möchte das die Attribute nicht auf dem Kopfstehen. Also habe ich einen fast identischen Blockdefnition gemacht jedoch mit der Ausrichtung MitteRechts und nicht MitteLinks. Und das Ganze dann noch um 180 Grad gedreht. Per Code Entscheide ich dann welchen Block ich nehmen muss. Ich hoffte eigentlich mit diesem Trick eben genau das Problem der Textlängenberechnung umgehen zu können. Gibt es evtl einen anderen Ansatz. Zur not könnte man auch noch ScriptPro Drüberlaufen lassen, oder hilft es die Datei im Editor zu öffnen? Gruss Holger und schon mal danke [EDIT] die oberhälfte des kreises zeigt was nach dem ersten öffnen der Datei zu sehen ist, und die untere wie es nach attsync/attedit zusehen ist. [Diese Nachricht wurde von oscarr am 25. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 25. Sep. 2009 19:47 <-- editieren / zitieren -->
Hi Holger, ObjectARX ist es auch nicht (wenn Du mit VB2008-Express arbeitest), aber ein klein wenig verwandt, das eine ist unmanaged und C++, das andere ist dotNET (C#, VB.NET, J#, ...) und managed. Wenn Du die Database-Objekte nicht im Editor hast, kannst Du nur händisch im Code die Attributreferenzen entsprechend der Ausrichtung (wenn diese nicht Links/Unten ist) umrechnen. Wenn Du an eine Alternative wie Scripting denkst, dann kannst Du aber gleich das Document in den Editor laden, sonst geht auch Scripting nicht. Sorry (nach bestem Wissen und Gewissen), - alfred - ------------------ www.hollaus.at |
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 29. Sep. 2009 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für oscarr
Hallo Alfred, Hallo Holger, bitte verzeiht mir, daß ich in diesem Thread off-Topic-Fragen stelle, aber ihr seid wohl die richtigen um meine Fragen zu beantworten. Ich programmierte bisher auch in VBA und liebäugle nun auch mit dem Gedanken nach VB2008 Express umzusteigen. Aber aller Anfang ist schwer. Und deshalb hätte ich gerne gewußt ob ihr deutschsprachige Lektüre zu dem Thema kennt, bzw. empfehlen könnt. Primär geht es mir mal darum, einen vernünftigen Einstieg zu finden, um nicht von Anfang an Dinge falsch zu lernen. Auch Schulungen zu dem Thema wären nicht uninteressant, falls es welche gibt. Und dann würde mich zum Beitrag von Alfred noch interessieren, was denn der Unterschied von unmanaged und managed Code ist. Und welche Vor,- bzw. Nachteile VB2008 gegenüber ObjetctARX hat. lg Didi
[Diese Nachricht wurde von Goofy007 am 29. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 29. Sep. 2009 13:46 <-- editieren / zitieren -->
Hi Didi, >> deutschsprachige Lektüre zu dem Thema Such mal in diesem Forum, da hat es schon solche Anfragen und auch Antworten gegeben. >> Auch Schulungen zu dem Thema wären nicht uninteressant
Werbung darf ich hier nicht machen, schick mir PM mit klein wenig Info, was Du machen willst, wie weit Du von Melk/St.Pölten entfernt bist, Deine eMail-Adresse, dann kann ich Dir direkt antworten. >> unmanaged und managed Code
Schau mal auf der Microsoft-Homepage nach Unterschieden zwischen C++ und C# (bzw. VB.NET), das kann nicht in einem Satz und auch nicht in einem Absatz erklärt werden. >> Vor,- bzw. Nachteile VB2008 gegenüber ObjetctARX
Mit ObjectARX kommst Du dem AutoCAD-Kern um eine Spur näher (und musst/darfst mit C++ programmieren), mit dotNET stehen Dir nahezu alle AutoCAD-Innereien zur Verfügung, arbeitet (wenn man es nützt) TransAction-basierend und damit mit einer Performance, die der von ObjectARX sehr nahe kommt. Mit allem dotNET-basierenden Arbeiten hast Du Vorteile in bezug auf Effizienz in der Programmierung/Debugging (da liegt man um Faktoren über einer C++-Entwicklung), bei Gestaltung des Benutzerinterfaces und bei vielem, was mit Windows-Grundfunktionen und Ansprechen von anderen Windows-Applikationen zu tun hat. Last but not least bist Du mit dotNET platformunabhängig, sprich Deine Applikation läuft mit 32bit AutoCAD ohne etwas getrennt machen zu müssen auch mit 64bit. Zugegeben es gibt schon ein paar Kleinigkeiten auf die man aufpassen muss, aber unvergleichbar zu C++. - alfred - ------------------ www.hollaus.at |
oscarr Mitglied CAD-Manager
Beiträge: 198 Registriert: 02.10.2007
|
erstellt am: 29. Sep. 2009 14:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Didi, dem ist im Grunde nichts hinzuzufügen. Ausser das ich nichts brauchbares auf Deutsch zum Thema AutoCAD und VB.net gefunden habe. Ich habe mir http://www.vbcad.com/showabook.asp?BOOKID=5 gekauft, als e-Book (nicht druckbar!) ist halt auf English und war für mich als VBA Umsteiger perfekt, gerade das Projekt Setup damit man in AutoCAD richtig debuggen kann ist gut beschrieben. Sowie die von Alfred beschriebenen Transactions und der allgemeine Zugriff auf AutoCAD. Was dabei fehlt ist lediglich der kleine feine Trick dem AutoCAD eine scr Datei mit dem NETLOAD und dem zu debuggenden Befehl mitzugeben. Dann debuggt es sich (fast) so easy wie im VBA Editor. Gruss Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goofy007 Mitglied Vermessungstechniker
Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 29. Sep. 2009 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für oscarr
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|