| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Mittelpunkt eines Blockes ermitteln (948 mal gelesen)
|
Karl01 Mitglied

 Beiträge: 55 Registriert: 15.06.2004 Win 7; Map2012
|
erstellt am: 22. Okt. 2009 16:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen ich habe einen Block (=Rechteck) von dem der Einfügepunkt (=Ecke des Rechteckes), die Drehung und die beiden Seitenlängen bekannt sind. Wie kann ich nun den Mittelpunkt von diesem Block ermitteln? Karl
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 22. Okt. 2009 16:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Karl01
hilft dir X_mitte = X_einfüge+a/2 * cos w -b/2 *sin w Y_mitte = Y_einfüge+a/2 * sin w +b/2 *cos w weiter ? Vorzeichen sind vom betrachteten bekannten Eckpunkt abhängig hat aber nix mit vba zu tun , sonderm mit Mathe  ------------------ - 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 |
Karl01 Mitglied

 Beiträge: 55 Registriert: 15.06.2004 Win 7; Map2012
|
erstellt am: 22. Okt. 2009 16:48 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 22. Okt. 2009 17:18 <-- editieren / zitieren -->
Hi, wenn es sich wirklich um ein Rechteck handelt, bist Du schneller, wenn Du die Extents der BlockReferenz nimmst, und aus MinPnt und MaxPnt der retournierten Extents den Mittelpunkt ermittelst. - alfred - ------------------ www.hollaus.at |
Karl01 Mitglied

 Beiträge: 55 Registriert: 15.06.2004 Win 7; Map2012
|
erstellt am: 23. Okt. 2009 08:48 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 23. Okt. 2009 09:09 <-- editieren / zitieren -->
Hi, ok, davon (Attribut) stand oben nix. Wenn der Basispunkt des Attributs innerhalb des Rechtecks liegt, dann - den Wert (TagString) zwischenspeichern, auf leer setzen - oder - die Texthöhe des Attributs zwischenspeichern und auf z.B. 0.000001 setzen dann Extents abfragen und wieder auf ursprüngliche Werte setzen. Ich möchte aber dazusagen, dass diese Vorgehensweise nur dann (halbwegs) brauchbar ist, wenn es sich nicht um eine große Anzahl von Elementen handelt, da jede der obigen Aktionen relativ zeitaufwendig ist und auch den Undo-Speicher füllt. - alfred - ------------------ www.hollaus.at |
Karl01 Mitglied

 Beiträge: 55 Registriert: 15.06.2004 Win 7; Map2012
|
erstellt am: 23. Okt. 2009 09:40 <-- editieren / zitieren --> Unities abgeben:         
Hallo Alfred, nochmals zu meinem Problem ich habe in einer Zeichnung um die 1000 Blöcke = Rechteck mit unterschiedlichen x,y Faktoren und der Basispunkt befindet sich an einer Ecke des Rechtecks. Weiters besitzt der Block ein Attribut desen Basispunkt auserhalb vom Rechtecke ist. Jetzt muß ich diesen Block durch einen Block, ebenfalls ein Rechteck bei dem der Basispunkt = Mittelpunkt des Rechteck ist, ersetzen. Der Block hat auch kein Attribut mehr. Jetzt war eben meine Überlegung das ich den Mittelpunkt des Block=Rechteck ermittle und einen neuen Block setze. Oder gibt es eine bessere Möglichkeit? Karl Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Okt. 2009 09:48 <-- editieren / zitieren -->
Hi Karl, >> Der Block hat auch kein Attribut mehr dann kannst Du ja aus der bestehenden BlockReferenz die AttributReferenz löschen (dann verbleibt nur mehr das Rechteck), dann Extents ermitteln und aus den Extents den Mittelpunkt. Der schnellere Weg könnte hier auch sein, Du nimmst Dir mit dem Blockeditor die alte Blockdefinition zur Hand ==> löscht in dieser die Attributdefinition raus ==> beendest den Blockeditor (mit speichern) und machst dann '_attsync'. Damit funktioniert dann auch die Mittelpunktermittlung über die Extents. - alfred - ------------------ www.hollaus.at |
Karl01 Mitglied

 Beiträge: 55 Registriert: 15.06.2004 Win 7; Map2012
|
erstellt am: 23. Okt. 2009 10:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo Alfred Zitat:
dann kannst Du ja aus der bestehenden BlockReferenz die AttributReferenz löschen (dann verbleibt nur mehr das Rechteck), dann Extents ermitteln und aus den Extents den Mittelpunkt.
funktioniert super! Vielen Dank und ein schönes Wochenende Karl
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |