| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Blocks skalieren (1945 mal gelesen)
|
moes Mitglied Landschaftsplaner

 Beiträge: 19 Registriert: 13.06.2004 Windows 2000, Intellicad CMS PE 4, PIII 1400GHz, 400MB RAM
|
erstellt am: 29. Jun. 2004 16:46 <-- editieren / zitieren --> Unities abgeben:         
Ich verwende VBA aus einer Access-Datenbank heraus um Zeichnungseigenschaften aus Intellicad (für Autocad müsste der Code nur etwas umgeschrieben werden)auszulesen und anschließend wieder in die geöffnete Zeichnung zurückzuschreiben (via HandletoObject). Das funktioniert auch prima. Ich habe nur folgendes Problem. Ich kann Blöcke mit Attributen skalieren, wobei auch nur die der Block skaliert wird (dScale ist der Wert der die Größe bestimmt), die Schrifthöhe der Attribute bleibt erhalten. '-------------------------------------------------------------- 'Public Function ChangeCadBlkScale '-------------------------------------------------------------- Public Function ChangeCadBlkScale(oEnt As IntelliCAD.Entity, dScale As Double) As Boolean Dim oBlk As IntelliCAD.BlockInsert Set oBlk = oEnt oBlk.XScaleFactor = dScale oBlk.YScaleFactor = dScale oBlk.Update Set oBlk = Nothing End Function Wenn ich nun einzelne Attribute in dem Block doch mal editieren muss, oder Attribut eigenschaften ändere, dann werden auch sämtliche Attribut-Texte entsprechend dem Maßstab der Blockzeichnung vergrößert. Gibt es in VBA keine andere Möglichkeit statt XScaleFactor, bei der nur die Zeichnung des Blocks, nicht aber die Attributwerte skaliert werden? PS: Mir ist schon klar, dass ich hier im AutoCad VBA-Forum bin, viele VBA Anweisungen sind in IntelliCad aber vergleichbar.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
moes Mitglied Landschaftsplaner

 Beiträge: 19 Registriert: 13.06.2004 Windows 2000, Intellicad CMS PE 4, PIII 1400GHz, 400MB RAM
|
erstellt am: 07. Jul. 2004 09:48 <-- editieren / zitieren --> Unities abgeben:         
Nachdem es keine Antworten auf meine Frage gibt, war die vielleicht nicht klar genug formuliert, oder es geht tatsächlich nicht. Allgemeiner also: Kann mann via VBA einen Block mit Attributen so ändern, dass zwar die Größe der Blockzeichnung, nicht aber der Attributanteil skaliert wird, also sowohl Position, wie auch Schriftgröße erhalten bleiben? Witzigerweise funktioniert das ja auf dem oben beschriebenen Weg, aber eben nur scheinbar, weil die Attribute in der Zeichnung est mal ihre Größe behalten bis - und da steckt der Teufel drin - man ein Attribut editiert. Dann ziehen alle Attributtexte ebenfalls dem Skalierfaktor der Blöcke nach. Eine solche Überraschung möchte ich aber allen, die später vielleicht mal mit den Dateien arbeiten möchten ersparen. (Als Anhang habe ich eine Zeichnung beigefügt, die auf dem genannten Wege erstellt wurde.) Wenn das nicht sauber geht, muss ich vermutlich die Attribute und das Symbol als zwei getrennte Blocks einfügen, so daß ich beide unabhängig voneinander behandeln kann. Also das Symbol (mit BlockInsert.XScaleFactor)skaliere, ohne die Attributwerte in ihrer Größe zu verändern. Das wäre eine unschöne Lösung, da ich für ein zusammenhängendes Objekt plötzlich zwei Objekte in die Zeichnung einfügen (und verwalten) müsste. Ich kann mir ja nicht vorstellen, dass nicht schon jemand vor einem ähnlichen Problem gestanden ist. Gruß Georges Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |