| |
 | 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: Ecken Zählen (405 mal gelesen)
|
Seven Mitglied
 
 Beiträge: 429 Registriert: 20.06.2002 Autocad 2020 Inventor 2022
|
erstellt am: 16. Jul. 2004 12:21 <-- editieren / zitieren --> Unities abgeben:         
Ich suche eine Funktion die mir die Ecken einer Polylinie zählt. Gibt es so was , e.v. als Lisp? Das ist mal wieder exotisch, doch das Urproblem liegt anders, und vielleicht weiss ja jemand darauf eine elegante Lösung. Es geht um den Massenauszug des Koffers aus dem plan. Von einem Platz dessen Kosten ich berechnen soll habe ich nur den Asphalt gezeichnet. Der darunterliegende Kieskoffer ist aber breiter als der Platz, um genau zu sein die Höhe des Koffers breiter als der Platzbelag. Bis Anhin rechne ich in einer Exceltabelle folgende formel: (Fläche Platz * Kofferstärke) + (Umfang Platz * Koffertsärke * Koffertsärke * Koffertsärke)+(Anzahl positiver Ecken* Koffertsärke * Koffertsärke * Koffertsärke) Das gibt ein ziemlich präzises resultat. Fläche und Umfang, kann ich sehr rationell ausziehen, doch die Ecken muss ich von hand nachzählen, daher suche ich so eine Funktion seven 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. Jul. 2004 12:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
(vl-load-com) (defun PL-Coords->PKTLIST( OBJEKT NODOUBLE? / OBJEKTDATEN DIMS ZAHLLISTE PKT PUNKTLISTE) (if (and(=(type OBJEKT) 'ENAME) (member (cdr(assoc 0 (setq OBJEKTDATEN(entget OBJEKT)))) '("LWPOLYLINE" "POLYLINE")) ) (progn (setq DIMS (cond ((=(cdr(assoc 0 OBJEKTDATEN)) "LWPOLYLINE") 2) ((=(cdr(assoc 0 OBJEKTDATEN)) "POLYLINE") 3) ) ) (setq ZAHLLISTE (vlax-safearray->list (vlax-variant-value (vlax-get-property (vlax-ename->vla-object OBJEKT) 'coordinates) ) ) ) (repeat (/(length ZAHLLISTE)DIMS) (cond ((= DIMS 2) (setq PKT (list(car ZAHLLISTE)(cadr ZAHLLISTE) 0.0)) (setq ZAHLLISTE (cddr ZAHLLISTE)) ) ((= DIMS 3) (setq PKT (list(car ZAHLLISTE)(cadr ZAHLLISTE) (caddr ZAHLLISTE))) (setq ZAHLLISTE (cdddr ZAHLLISTE)) ) ) (if NODOUBLE? (if (not(member PKT PUNKTLISTE)) (setq PUNKTLISTE (cons PKT PUNKTLISTE)) ) (setq PUNKTLISTE (cons PKT PUNKTLISTE)) ) ) PUNKTLISTE ) ) ) (defun C:ECKENANZAHL( / PKTLIST) (if(setq PKTLIST(PL-Coords->PKTLIST(car(entsel "\nPolylinie wählen: "))'T)) (progn (princ "\nAnzahl ECKPUNKTE: ") (prin1(length PKTLIST)) ) ) (princ) ) Funzt bei 2D und LW-Polylinien und ignoriert auch doppelte Punkte. ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Jessen Mitglied Dipl-Ing (FH) Landespflege
 
 Beiträge: 195 Registriert: 10.01.2002 ACADMap2011
|
erstellt am: 16. Jul. 2004 13:17 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
Hallo Seven, als alternatives Sparbrötchen zum Vorschlag von Thomas: Polylinie anklicken, Eigenschaftenfenster öffnen, bei Geometrie auf Scheitelpunkt klicken, 1x nach links,... voilà ------------------ AJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seven Mitglied
 
 Beiträge: 429 Registriert: 20.06.2002 Autocad 2020 Inventor 2022
|
erstellt am: 16. Jul. 2004 13:24 <-- editieren / zitieren --> Unities abgeben:         
|
Andreas-H Mitglied

 Beiträge: 34 Registriert: 07.06.2004 AutoCAD2004 / Prosteel
|
erstellt am: 09. Nov. 2004 15:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
|
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: 09. Nov. 2004 15:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
Zitat: Original erstellt von Andreas-H: Der Befehl ist genau das was ich gesucht habe, ich bräuchte nur bei der Auswahl die Möglichkeit mehrere Polylinien (ca.500) auf einmal auszuwählen. Ist das möglich???Gruß Andreas
...Sicher , aber erklär mir bitte vorher den Sinn!
------------------ - 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 |
oandres Mitglied

 Beiträge: 80 Registriert: 24.05.2004 Windows XP Acad 2004
|
erstellt am: 09. Nov. 2004 17:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
@CADmium und alle anderen LISP'ler: habt ihr solche Programme in der Schublade rumliegen oder wieso geht das bei Euch so schnell ??? Mir ist das nämlich auch schon einige male passiert, dass ich ein Lisp programmiert bekam schon kurz nach dem ich die Frage gepostet hatte... Oder ist Lisp wirklich sooo einfach (wenn man's kann ) ? Gruß Olli Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 09. Nov. 2004 20:08 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
Hallo Olli, wenn man ausreichend viel Erfahrung hat, dann sind solche Programme, ohne auch nur einmal zu testen, runtergeschrieben. Da einem das Vorgehen bereits klar ist, ist das Tippen nur noch reine Fleißarbeit. Es ist wirklich möglich, so schnell Lösungen zu bieten. Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD Da weiß man, wann man's hat! [Diese Nachricht wurde von Brischke am 09. Nov. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
    

 Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 10. Nov. 2004 08:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
|

| |
mapcar Mitglied CADmin

 Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 10. Nov. 2004 08:31 <-- editieren / zitieren --> Unities abgeben:          Nur für Seven
|