| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON und Flottweg: mit ECTR unter die Top 3 , ein Anwenderbericht
|
Autor
|
Thema: Polylinie skalieren (491 mal gelesen)
|
vision Mitglied
Beiträge: 113 Registriert: 27.10.2003 AutoCAD 2015 Expresstools Windows 10
|
erstellt am: 16. Mrz. 2004 21:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, wenn eine Polylinie mit einer Breite von z.B. 0,5 skaliert wird, ändert sich da durch automatisch die Breite. Da die Breite sich nicht ändern soll, möchte ich fragen, ob man die Funktion deaktivieren kann! Für Eure Bemühungen bedanke ich mich schon im Voraus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 16. Mrz. 2004 23:40 <-- editieren / zitieren --> Unities abgeben: Nur für vision
... ist glaube ich so.. und nicht deaktivierbar ... --> und wenn es nicht deaktivierbar ist, probier mal folgendes (noch nicht voll durchgetestetes) Lisp : (vl-load-com) (defun C:Varia_X ( / AUSWAHL ORIGIN SCALE OBJEKT VLA-OBJ SEGMENT-ANZAHL INDEX STARTWIDTH ENDWIDTH WIDTHLIST) (if (and(setq AUSWAHL (ssget)) (setq ORIGIN (getpoint "\nBasispunkt : ")) (setq SCALE (getreal "\nSkalierfaktor : ")) ) (progn (repeat (sslength AUSWAHL) (setq OBJEKT (ssname AUSWAHL 0)) (setq VLA-OBJ (vlax-ename->vla-object OBJEKT)) (if (member (cdr(assoc 0 (entget OBJEKT))) '("LWPOLYLINE" "POLYLINE")) (progn (setq SEGMENT-ANZAHL (/(length (vlax-safearray->list (vlax-variant-value (vlax-get-property VLA-OBJ 'coordinates) ) ) ) 2 ) ) (if (= (vlax-get-property VLA-OBJ 'Closed) :vlax-flase) (setq SEGMENT-ANZAHL (- SEGMENT-ANZAHL 1)) ) (setq INDEX -1) (repeat SEGMENT-ANZAHL (vlax-invoke-method VLA-OBJ 'GetWidth (setq INDEX (1+ INDEX)) 'STARTWIDTH 'ENDWIDTH) (setq WIDTHLIST (cons (list STARTWIDTH ENDWIDTH) WIDTHLIST)) ) (setq WIDTHLIST (reverse WIDTHLIST)) (vlax-invoke-method VLA-OBJ 'ScaleEntity (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 2)) ORIGIN ) SCALE ) (setq INDEX -1) (repeat SEGMENT-ANZAHL (setq STARTWIDTH (vlax-make-variant(car (car WIDTHLIST)) vlax-vbDouble)) (setq ENDWIDTH (vlax-make-variant(cadr (car WIDTHLIST)) vlax-vbDouble)) (setq WIDTHLIST (cdr WIDTHLIST)) (vlax-invoke-method VLA-OBJ 'SetWidth (setq INDEX (1+ INDEX)) STARTWIDTH ENDWIDTH) ) ) (vlax-invoke-method VLA-OBJ 'ScaleEntity (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 2)) ORIGIN ) SCALE ) ) (ssdel OBJEKT AUSWAHL) ) ) ) ) .. skaliert alle gewählten Objekte wie der varia-Befehl, läßt bloß bei LW-Polylinien und Polylinien die vorgegebene Liniendicke gleich.. ..dabei kann die Liniendicke auch segmentweise unterschiedlich definiert sein.. ------------------ - Thomas -
[Diese Nachricht wurde von CADmium am 17. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Daniela1 Mitglied Technische Zeichnerin H/K/S
Beiträge: 146 Registriert: 12.03.2004 ADT 2008 MEP 2008 Linear Desktop 5.05 Linear 3D Badplanung 2.0 Linear 3D- Luftkanal 4.07 Linear 3D- Heizzentrale 3.0 Linear Haustechnik 4.0
|
erstellt am: 17. Mrz. 2004 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für vision
Hallöchen, mußt Du, denke ich mal, leider so hinnehmen... das einzige was mir dazu einfällt, wäre die Polylinie zu skalieren und dann über > Eingenschaften ändern die Segmentbreite wieder auf den Ursprungswert zu setzen... aber ob das so das Wahre ist.... ich glaub ja eher nicht..... ( Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Daniela1 Mitglied Technische Zeichnerin H/K/S
Beiträge: 146 Registriert: 12.03.2004 ADT 2008 MEP 2008 Linear Desktop 5.05 Linear 3D Badplanung 2.0 Linear 3D- Luftkanal 4.07 Linear 3D- Heizzentrale 3.0 Linear Haustechnik 4.0
|
erstellt am: 17. Mrz. 2004 16:29 <-- editieren / zitieren --> Unities abgeben: Nur für vision
|
vision Mitglied
Beiträge: 113 Registriert: 27.10.2003 AutoCAD 2015 Expresstools Windows 10
|
erstellt am: 18. Mrz. 2004 08:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, ich bekomme mit dem Lisp-Prg. leider folgende Fehlermeldung beim Versuch eine 2DPolylinie zu skalieren: Skalierfaktor : 2 ; Fehler: Keine Umwandlung des lisp-Wertes in VARIANT mit folgendem Typ: ENDWIDTH
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |