| |
| 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: MV-Block geänderte Werte zurückschreiben (661 / mal gelesen)
|
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 08. Okt. 2021 08:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Lisp-Experten, ich habe mir aus MV-Blöcken in einer Zeichnung folgende Werte ermittelt: (setq ObjnameMVB (ssname get_MV-BLOCK lauf));holt Entityname von MV-Block (setq ObjnameMVBVLA (vlax-ename->vla-object ObjnameMVB));holt VLA-Objektname von MV-Block (setq MVBlockDefName (vlax-get-property ObjnameMVBVLA "StyleName")) (setq scalex (vlax-get-property ObjnameMVBVLA "ScaleX")) (setq scalez (vlax-get-property ObjnameMVBVLA "ScaleZ")) (setq scaley (vlax-get-property ObjnameMVBVLA "ScaleY")) (setq einfp (vlax-get ObjnameMVBVLA "Location")) (setq einfpx (car einfp)) (setq einfpy (car (cdr einfp))) (setq einfpz (car (cddr einfp))) bis hier hat alles prima funktioniert nun möchte ich die folgenden Werte an die MV-Blöcke zurück schreiben: (setq scalexnew (* scalex 1000)) (setq scaleznew (* scalez 1000)) (setq scaleynew (* scaley 1000)) und der "StyleName" soll geändert werden. (entget ObjnameMVB) liefert nur: ((-1 . <Objektname: 187f25ba320> ) (0 . "AEC_MVBLOCK_REF") (330 . <Objektname: 187b09fd020> ) (5 . "5AA") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "A-ASPR-NEU")) Ich finde keine passenden Gruppencodes die ich mit (entmod ..) austauschen kann. Wie kann ich die geänderten Werte an den MV-Block zurückschreiben? Danke für Eure Hilfe. ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 08. Okt. 2021 08:36 <-- editieren / zitieren --> Unities abgeben:
Noch eine weiter Frage: (setq einfp (vlax-get ObjnameMVBVLA "Location")) liefert nur gerundete Werte (6975.0 51957.8 0.0) der exakte Wert wäre (6975.00000000 51957.81262714 0.00000000) Kann (vlax-get ObjnameMVBVLA "Location") auch die exakten Werte zurückgeben? ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 08. Okt. 2021 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
Hallo cadking, du holst dir mit vlax-get-property die Skalierungen. Was spricht dagegen mit vlax-put-property diese zurückzuschreiben ? Ich hab hier keine MVBlöcke und kann das nicht ausprobieren, sollte doch aber gehen. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 08. Okt. 2021 11:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, du hast natürlich recht. Es spricht nichts dagegen und funktioniert auch soweit, nur: ich ermittel den Einfügepunkt: (setq einfp (vlax-get ObjnameMVBVLA "Location")) berechne den neuen Einfügepunkt: (setq einfpxnew (+ einfpx (*(/ scalex 2) 1000))) (setq einfpznew (+ einfpz (*(/ scalex 2) 1000))) (setq einfpnew (list einfpxnew einfpy einfpznew)) aber (vlax-put ObjnameMVBVLA "Location" einfpnew) hat keine Auswirkung auf die Position des MV-Blocks.
------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 08. Okt. 2021 12:11 <-- editieren / zitieren --> Unities abgeben:
Sorry, man darf die Codezeilen natürlich nicht in einen "ausgeREMten Bereich setzen, dann funktioniert (vlax-put ObjnameMVBVLA "Location" einfpnew) auch. ------------------ Danke Stefan
[Diese Nachricht wurde von cadking am 08. Okt. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Okt. 2021 20:42 <-- editieren / zitieren --> Unities abgeben: Nur für cadking
|
cadking Mitglied CAD-Zeichendiensleistung
Beiträge: 242 Registriert: 26.10.2004 Intel Quadcore i7,W7-64bit, Quadro FX 3800 MEP/ACA2018; MEP/ACA2018; MEP/ACA2021; MEP/ACA2021
|
erstellt am: 12. Okt. 2021 13:56 <-- editieren / zitieren --> Unities abgeben:
hallo CADmium, berechtigter Hinweis, vielen Dank. gas hätte auch schief gehen können, es handelt sich nämlich um konvertierte Aussparungen. Wenn die falsch gebohrt worden wären, puhh. ------------------ Danke Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |