| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Rechteck um Polylinie als Umgrenzung (4006 mal gelesen)
|
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 15. Dez. 2004 10:50 <-- editieren / zitieren --> Unities abgeben:
Hallo, kann mir jemand verraten wo ich eine Funktion finde die ein Rechteck am eine frei gezeichnete Polylinie zeichnet, quasi als Begrenzung. Brauche ich im Bereich CNC da das Rechteck dann die Außenmaße von dem Werkstück angibt. Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 15. Dez. 2004 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Versuch mal dies: Code:
(vl-load-com)(defun C:PLBOX (/ VAR RETVAL) (if (setq VAR (car (entsel))) (if (setq VAR (MS:GETBOUNDINGBOX VAR)) (progn (command "_.rectang" (car VAR) (cadr VAR)) (setq RETVAL (vlax-ename->vla-object (entlast))) ) ) ;_ end of if ) ;_ end of if RETVAL ) ;_ end of defun (defun MS:GETBOUNDINGBOX (ENAME / LL UR) (vla-getboundingbox (vlax-ename->vla-object ENAME) 'LL 'UR) (mapcar 'vlax-safearray->list (list LL UR)) )
... ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tulsa Mitglied Maschinenbauer
Beiträge: 488 Registriert: 17.05.2004 Win10(x64) 16GB RAM PNY®Quadro®K4200 PRDSU 2014/15/16/17;Vault 2017 InventorCAM 2016 SP3 Space Pilot Pro ********** Dell M6600 Win10(x64) 12GB RAM NVIDIA®Quadro®4000M PRDSU 2017 InventorCAM 2016 Space Pilot Pro **********
|
erstellt am: 15. Dez. 2004 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 15. Dez. 2004 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
so ? (defun C:PLBOX (/ VAR RETVAL) (if(and(setq VAR (car (entsel))) (setq A (getreal "Randabstand: ")) ) (if (setq VAR (MS:GETBOUNDINGBOX VAR)) (progn (command "_.rectang" (mapcar '- (car VAR) (list a a a)) (mapcar '+ (cadr VAR)(list a a a)) ) (setq RETVAL (vlax-ename->vla-object (entlast))) ) ) ) RETVAL )
------------------ - 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 |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 15. Dez. 2004 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hi Matze, man kann alles. Die Frage ist nur, ob jemand dazu Lust hat :-). (Und die Lust fällt bei mir gegen null, wenn ich sehe das jemand meinen Namen falsch schreibt) ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tulsa Mitglied Maschinenbauer
Beiträge: 488 Registriert: 17.05.2004 Win10(x64) 16GB RAM PNY®Quadro®K4200 PRDSU 2014/15/16/17;Vault 2017 InventorCAM 2016 SP3 Space Pilot Pro ********** Dell M6600 Win10(x64) 12GB RAM NVIDIA®Quadro®4000M PRDSU 2017 InventorCAM 2016 Space Pilot Pro **********
|
erstellt am: 15. Dez. 2004 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Sorry Marc, das lag einfach daran das unser Azubi so geschrieben wird. @Thomas: So dachte ich mir das, die Eingabeaufforderung fragt nach dem Randabstand, (ok bis dahin) - dann kommt leider (no function definition: MS:GETBOUNDINGBOX Gruß Matze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 15. Dez. 2004 12:05 <-- editieren / zitieren --> Unities abgeben:
|
Tulsa Mitglied Maschinenbauer
Beiträge: 488 Registriert: 17.05.2004 Win10(x64) 16GB RAM PNY®Quadro®K4200 PRDSU 2014/15/16/17;Vault 2017 InventorCAM 2016 SP3 Space Pilot Pro ********** Dell M6600 Win10(x64) 12GB RAM NVIDIA®Quadro®4000M PRDSU 2017 InventorCAM 2016 Space Pilot Pro **********
|
erstellt am: 15. Dez. 2004 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 15. Dez. 2004 20:37 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 16. Dez. 2004 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hi Theodor, klar, kein Problem. Meinetwegen pack's da hin. Aber ich finde CADmium könnte seine Erweiterung noch dahingehend ausbauen, dass als Abstand auch ein Defaultwert durch ENTER aktzeptiert würde... ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADCH Mitglied Projektleiter
Beiträge: 1 Registriert: 16.12.2004
|
erstellt am: 16. Dez. 2004 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Guten Morgen Ich habe noch eine Frage zum Lisp, Ich Arbeite mit Autocad 2004 LT und LT-Extender. Der LT-Extender kann monentan leider noch nichts mit "vla" anfangen, könnte man das evtl. anders Lösen? Gruss vom Bodensee Bruno
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 16. Dez. 2004 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
@Theodor : ok, kannste, nimm dann aber gleich den Code: (defun C:PLBOX (/ OBJ VAR LL UR) (vl-load-com) (if(and(setq OBJ (car (entsel))) (or(setq A (getreal "\nRandabstand <0> : ")) (setq A 0.0) ) ) (progn (vla-getboundingbox (vlax-ename->vla-object OBJ) 'LL 'UR) (setq VAR (mapcar 'vlax-safearray->list (list LL UR))) (command "_.rectang" (mapcar '- (car VAR) (list a a 0)) (mapcar '+ (cadr VAR)(list a a 0)) ) ) ) (princ) ) @Bruno ... Jaein ...wenns um Linien oder Poliylinien mit geraden Segmenten geht, kann man noch alle Stützpunktkoordinaten in eine Liste(alle X in eine, alle Y in eine andere) packen, und dann ein Rechteck aus MINX/MINY MAXX/MAXY zeichnen lassen. ------------------ - 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 |
michael.pichler Mitglied IT'ler :-)
Beiträge: 79 Registriert: 29.09.2004
|
erstellt am: 16. Dez. 2004 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 16. Dez. 2004 10:16 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
wandelst dir das hier ab .. also (command "_.zoom" .. durch (command "_.rectang" ersetzen ------------------ - 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 |
michael.pichler Mitglied IT'ler :-)
Beiträge: 79 Registriert: 29.09.2004
|
erstellt am: 16. Dez. 2004 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
gut abwandeln... schön und gut.... nur.... ich möchte mir halt das oder diese polylinien, welche als "fräsbearbeitung" zusammenhängen miteinander markieren, siehe DXF... und über dieses objekt soll dann das rechteck kommen.... die funktion ansich funktionier ja... - bei einer zusammenhängenden PL. aber in meinem fall, kann eine platte auch aus einzelnen polylinien bestehen... die nicht zusammenhängen, deren form aber eine platte ergibt.. und über diese soll dann das REC kommen... *verständlich ;-( ------------------ mfg Michael www.planfactory.net Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 16. Dez. 2004 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Zitat: Original erstellt von michael.pichler: gut abwandeln... schön und gut....
hab dich schon verstanden .. und wenn man beide Tools vereinigt kommt z.B. sowas raus (defun C:PLBOX-Multi (/ AUSWAHL INDEX ELEM XYMIN XYMAX MINX MAXX MINY MAXY DATA A) (vl-load-com) (if(and(or (and (setq AUSWAHL (ssget "I")) (> (sslength AUSWAHL) 0)) (and (setq AUSWAHL (ssget)) (> (sslength AUSWAHL) 0)) ) (or(setq A (getreal "\nRandabstand <0> : ")) (setq A 0.0) ) ) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (vla-getboundingbox (vlax-ename->vla-object (ssname AUSWAHL (setq INDEX (1+ INDEX))) ) 'XYMIN 'XYMAX ) (setq DATA (cons (list (vlax-safearray->list XYMIN) (vlax-safearray->list XYMAX) ) DATA ) ) ) (setq MINX (-(eval (cons 'min (mapcar 'caar DATA)))A)) (setq MINY (-(eval (cons 'min (mapcar 'cadar DATA)))A)) (setq MAXX (+(eval (cons 'max (mapcar 'caadr DATA)))A)) (setq MAXY (+(eval (cons 'max (mapcar 'cadadr DATA)))A)) (vla-AddLightweightPolyline (if(=(vla-get-activespace(vla-get-activedocument(vlax-get-acad-object))) acModelSpace ) (vla-get-modelspace(vla-get-activedocument(vlax-get-acad-object))) (vla-get-paperspace(vla-get-activedocument(vlax-get-acad-object))) ) (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 9)) (list MINX MINY MAXX MINY MAXX MAXY MINX MAXY MINX MINY ) ) ) ) ) (princ) ) Bitte! Bitte! ..lest euch doch mal die Antworten richtig durch und testet die gemachten Vorschläge! So'n Beitrag werd ich sonst in Zukunft als "Macht mir mal" interpretieren... ------------------ - 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 |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 16. Dez. 2004 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hi, tja, dann muß man sich alle BoundingBoxes der gewählten Elemente (SelectionSet) ermitteln (MS:GETBOUNDINGBOX), diese in 'ner Liste sammeln und aus der Menge den kleinsten Wert unten Links und den größten Wert oben Rechts ermitteln. Im Prinzip kein Problem. Edit: Und wie man an CADmis Beispiel sieht, auch in der Praxis realisierbar :-) ------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 16. Dez. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 17. Dez. 2004 17:03 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 19. Dez. 2004 17:38 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hallo Thomas, die Datei "PLBOX-Multi" mag nicht alle Konturen. Frauen jedoch lieber als Männer. Bitte, schau mal das angehängte Bild an. Als Abstand habe ich jeweils 0 angegeben. Die Zeichnung habe ich mit angehängt. Zur Info, es sind 2 Figuren zum pudern von Kuchen oder Nachtischteller. Viele Grüße Thedor Schönwald Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 20. Dez. 2004 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|