|
Autor
|
Thema: Polylinie in Kreis umwandeln (7430 mal gelesen)
|
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 8611 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Mrz. 2005 09:36 Unities abgeben:         
jo , echt super, der macht sogar aus einer geraden schräg in der Ebene liegenden Polylinie eine Kreis, ok, wenn sie waagerecht oder senkrecht liegt, gehts in die Hose und das Ursprungsobjekt wird auch nicht gelöscht.... und wenn man das (if(wcmatch(cdr(assoc 0 (entget (car elem))))"*POLYLINE") rausnimmt kann man es sogar für Kreise um Texte nutzen .. das nenn ich mal vielseitig ------------------ - 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 |
newcad Mitglied Schreinermeister in der AV
 
 Beiträge: 255 Registriert: 12.11.2003 Acad 2008 LT DE SP1 Acad 2008 DE SP1 Expresstools <P>Intel Pentium 4 2,6Ghz Windows xp pro, SP3 1024MB DDR2 Ram Nvidia GeForce 7600GS 256MB Zwei-Bildschirm-Arbeitsplatz TFT=V7 22"Wide TFT=V7 22"Wide
|
erstellt am: 24. Mrz. 2005 12:35 Unities abgeben:         
@cadwiesel 1. kann man das Lisp umschreiben oder erweitern, das man mehrere Objekte auf einmal auswählen kann (vielleicht die 'Wahl Funktion einbauen)?2. wenn ich den Befehl: P2C aufrufe und ein Objekt gewählt habe, wird auf dem vorhendenen Objekt ein zusätzlicher Kreis (mit dem aktuellen Layer) erzeugt, aber nicht die Polylinie in einen Kreis umgewandelt. Dadurch habe ich dann mehrere Objekte aufeinander liegen. Dies ist dann bei der Erstellung von CNC-Daten hinderlich. Kann man das Lisp so gestallten, daß automatisch ein andere Layer erzeugt wird, bzw. aktuell geschaltet wird? Diesen könnte ich dann isolieren, und meine gewünschten Objekte dann verschieben.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 8611 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Mrz. 2005 12:55 Unities abgeben:         
So, habs noch mal etwas überarbeitet und die pl2circle.VLX neu geuppt. Siehe ein Stückchen weiter oben sollte jetzt auch auf 2002 laufen.. Achso : das Teil nimmt wirklich nur kreisförmige Polylinien und löscht die Ursprungsobjekte  ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." [Diese Nachricht wurde von CADmium am 24. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator Nasenpopler
   

 Beiträge: 1394 Registriert: 05.09.2000 Wir machen das Mögliche unmöglich
|
erstellt am: 24. Mrz. 2005 12:58 Unities abgeben:         
hier isses (defun C:P2C (/ as elem minx maxx miny maxy mitte) (vl-load-com) (while (if (setq as (ssget '((0 . "*POLYLINE")))) (progn (repeat (sslength as) (setq elem (ssname as 0)) (vla-getboundingbox (vlax-ename->vla-object elem) 'xmin 'xmax ) ;_ end of vla-getboundingbox (setq MINX (car (vlax-safearray->list xmin)) MINY (cadr (vlax-safearray->list xmin)) MAXX (car (vlax-safearray->list xmax)) MAXY (cadr (vlax-safearray->list xmax)) MITTE (list (/ (+ MINX MAXX) 2) (/ (+ MINY MAXY) 2) ) ;_ end of list ) ;_ end of setq (entmake (list (cons 0 "CIRCLE") (cons 100 "AcDbEntity") (cons 67 0) (cons 410 "Model") (assoc 8 (entget elem)) (cons 100 "AcDbCircle") (cons 10 mitte) (cons 40 (abs (distance mitte (list (/ (+ maxx minx) 2) miny))) ) ;_ end of cons ) ;_ end of list ) ;_ end of entmake (setq as (ssdel elem as)) (entdel elem) ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if ) ;_ end of while ) ;_ end of defun------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
newcad Mitglied Schreinermeister in der AV
 
 Beiträge: 255 Registriert: 12.11.2003 Acad 2008 LT DE SP1 Acad 2008 DE SP1 Expresstools <P>Intel Pentium 4 2,6Ghz Windows xp pro, SP3 1024MB DDR2 Ram Nvidia GeForce 7600GS 256MB Zwei-Bildschirm-Arbeitsplatz TFT=V7 22"Wide TFT=V7 22"Wide
|
erstellt am: 24. Mrz. 2005 13:06 Unities abgeben:         
Hallo cadwiesel,10 für dich. Was muss ich aus dem Lisp löschen, wenn ich vermeiden will, das auch die Rechtecke zu Kreisen werden? Ansgar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 8611 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Mrz. 2005 13:22 Unities abgeben:         
Zitat: Original erstellt von newcad: Hallo cadwiesel,Was muss ich aus dem Lisp löschen, wenn ich vermeiden will, das auch die Rechtecke zu Kreisen werden?
Wiesel arbeitet mit getboundingbox! Da werden Rechtecke, Dreiecke, schräg in der Ebene liegende gerade Polylinien.. zu Kreisen! Um wirklich bloß kreisförmige PLs umzuwandeln braucht es schon einen anderen Ansatz!! Hab ich aber oben schon mal erläutert.. ------------------ - 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 |
CADwiesel Moderator Nasenpopler
   

 Beiträge: 1394 Registriert: 05.09.2000 Wir machen das Mögliche unmöglich
|
erstellt am: 24. Mrz. 2005 13:39 Unities abgeben:         
etwas Eigeninitiative bei der Auswahl der Objekte wollte ich euch schon überlassen. Der Vorteil ist aber auch, daß mit dieser Methode solche 'Krüppelkreise' wie sie aus Importformaten kommen können schön Rund gemacht werden.Ich habe noch den Layer angepasst. Der Kreis wird nun auf dem Layer worauf das Quellobjekt lag, erstellt. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
newcad Mitglied Schreinermeister in der AV
 
 Beiträge: 255 Registriert: 12.11.2003 Acad 2008 LT DE SP1 Acad 2008 DE SP1 Expresstools <P>Intel Pentium 4 2,6Ghz Windows xp pro, SP3 1024MB DDR2 Ram Nvidia GeForce 7600GS 256MB Zwei-Bildschirm-Arbeitsplatz TFT=V7 22"Wide TFT=V7 22"Wide
|
erstellt am: 24. Mrz. 2005 14:08 Unities abgeben:         
Also ich versuche es mal,Wir haben Bibliothekszeichnungen mit Bauteilen, die mit/zu Blöcken verschachtelt sind. Beispiel: Stell Dir einen einfachen Schrank (im Grundriss) mit einem Boden vor. Auf diesem Boden sind die Seiten des Schrankes als Rechtecke (als Block) gezeichnet. Die Seiten liegen auf dem Layer Seiten, der Sockelboden auf dem Layer Sockelboden. In dem Zeichnungsblock der Seiten sind die Bohrungen für Schrauben oder Dübel als Kreise gezeichnet. Diese liegen aber auf dem Layer Boden. Wenn ich nun den Layer Boden isoliere, kann ich auf ihm eine Umgrenzung erzeugen und diese in eine CNC-Datei schreiben. Um aber über die Schnellauswahl die Kreise/Polylinien einem CNC-Werkzeug zuordnen zu können, müssen es Kreise sein. Da unsere Schränke aber nur selten rechteckig aussehen, wäre es toll, wenn ich alle Objekte auswählen könnte, mir aber nur die Kreise umgewandelt würden. Hilft das weiter? Ansgar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 8611 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Mrz. 2005 14:20 Unities abgeben:         
Hallo Ansgar... sag mal, hast du mich auf der Ignoreliste ? Liest du dir meine Beiträge nicht durch? Für dein Anliegen ist Wiesel's Lisp ungeeignet!! dafür mußt du das nehmen!!!------------------ - 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 |
newcad Mitglied Schreinermeister in der AV
 
 Beiträge: 255 Registriert: 12.11.2003 Acad 2008 LT DE SP1 Acad 2008 DE SP1 Expresstools <P>Intel Pentium 4 2,6Ghz Windows xp pro, SP3 1024MB DDR2 Ram Nvidia GeForce 7600GS 256MB Zwei-Bildschirm-Arbeitsplatz TFT=V7 22"Wide TFT=V7 22"Wide
|
erstellt am: 24. Mrz. 2005 14:41 Unities abgeben:         
Hallo Thomas,ich will dich überhaupt nicht ignorieren. Im Gegenteil. Als das Posting am Dienstag begonnen hat, habe ich mir deine vlx geladen. Klappte auch bis gestern. Dann wurde ich immer durch eine AutoCad Meldung an einen abgelaufenen Testzeitraum erinnert, mit dem Hinweis mich bei cadmium@cad.de zu melden. Die Meldung habe ich dann ignoriert. Beim nächsten Versuch die Polylinien umzuwandeln machte AutoCad die letzten ca.100 Befehle rückgängig. (Wie bei meiner PM über die Konstruktionslinien. Du erinnertst dich?) Als dann das posting mit dem Lisp kam hatte ich die Hoffnung das wäre die Lösung für effizenteres Arbeiten. Da ich aber keine Ahnung davon habe, was man mit Lisp oder VLX machen kann, bin ich an dieser Stelle unwissend. Ansgar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |