| |
| 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, eine Pressemitteilung
|
Autor
|
Thema: Raster (2060 mal gelesen)
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 28. Aug. 2009 09:14 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe hier ein LISP mit dem ich in einen Raum ein Raster von Hilfspunkten legen kann. Jetzt habe ich mal versucht nicht einen Block sondern die Zwischenablage einfügen zu lassen. Einfach _insert mit _pasteclip austauschen war es aber nicht. Hat einer von den Profis mal einen Tip? Code: (defun c:ras (/ Blockn corner1 corner2 columns rows roomwidth roomheight colspacing rowspacing) (setq layfarb "2"); Farbe für Layer (command "layer" "m" "E-Konstruktion" "fa" layfarb "E-Konstruktion" "") (setq corner1 (getpoint "erste Ecke im Raum: ") corner2 (getpoint "gegenüber liegende Ecke: ") columns (getint "Anzahl X Richtung: ") rows (getint "Anzahl Y Richtung: ") roomwidth (abs (- (car corner1) (car corner2))) roomheight (abs (- (cadr corner1) (cadr corner2))) colspacing (/ roomwidth columns) rowspacing (/ roomheight rows) lowerleft (list (min (car corner1) (car corner2)) (min (cadr corner1) (cadr corner2)) ); end list ) (setq punktx (+(car lowerleft) (/ colspacing 2.0))) (setq punkty (+(car lowerleft) (/ rowspacing 2.0)))(setq AWSOLD (ssget"_X")) (command "_insert" "E-Hilfepunkt" (list(+ (car lowerleft) (/ colspacing 2.0))(+ (cadr lowerleft) (/ rowspacing 2.0))0) "" "" "") (if (= columns 1) (command "_array" "l" "" "R" rows columns rowspacing) (if (= rows 1) (command "_array" "l" "" "R" rows columns colspacing) (command "_array" "l" "" "R" rows columns rowspacing colspacing) ) ) (command "_.pselect" "_all" "_r" AWSOLD "") )
------------------ 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: 28. Aug. 2009 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für xem
(command "_pasteclip" '(0 0 0)) sollte funktionieren .. auch mit einem anderen Einfügepunkt ... allerdings müssen die neu eingefügten Objekte erst zu einem Auswahlsatz zusammengefaßt werden, damit der (command "_array" "l" ... Reihebefehl was zu tun hat ... sonst ist nämlich die letzte Auswahl -> L was ganz anderes ------------------ - 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 |
Ex-Mitglied
|
erstellt am: 28. Aug. 2009 09:59 <-- editieren / zitieren -->
Hi, nur um mehrere Varianten zu haben: hast Du Dir schon mal aus den Expresstools 'superhatch' angesehen? Wenn Du einen Raum füllen willst, der Raum aber nicht gerade in den Rasterschritten gebaut ist, wie Deine Basiselemente für dir Reihe, bzw. schräge Kanten hat, dann macht das obiger Befehl ganz praktikabel. - alfred - ------------------ www.hollaus.at |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 28. Aug. 2009 10:24 <-- editieren / zitieren --> Unities abgeben:
Ich würde gern einen dynamischen Block mit dem LISP aufteilen lassen. Das geht auch, nur bekomme ich dann immer den ersten Sichtbarkeitsstatus und ohne Attribute. Wenn ich mir einen dynamischen Block so einrichte wie ich ihn gerne hätte und dann im Befehl nach einer Auswahl gefragt werde ...? Das müßte doch auch gehen? (command "_insert" "E-Hilfepunkt" ... - das müßte dann durch eine Abfrage "Bitte Block auswählen" ersetzt werden. Aber wie soll das dann aussehen? ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 09:32 <-- editieren / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 31. Aug. 2009 09:41 <-- editieren / zitieren --> Unities abgeben: Nur für xem
Zitat: Original erstellt von xem: Ist das mit den dynamischen Blöcken so schwer, oder warum weiß da niemand weiter?
:hmm vielleicht weil Du Dich im Posting davor nicht so ganz klar ausgedrückt hast? Sag' doch mal präzise an, was genau Du tun willst. Dann kommt sicherlich auch eine qualifizierte Antwort. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 31. Aug. 2009 10:08 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 10:50 <-- editieren / zitieren --> Unities abgeben:
Also, ich habe einen dyn. Block mit meheren Sichtbarkeitsparametern und Attributen. Wenn ich das LISP von oben verwende muß ich immer nach dem einfügen die Sichtbarkeitsparameter und Attribute für die eingefügten Blöcke auswählen / eingeben. Einfacher wäre es den Block ein mal wie gewünscht einzustellen und dann mit dem LISP einzufügen. Eine Überlegung wäre den Block in die Zwischenablage zu kopieren und von dort einfügen zu lassen, oder eine Abfrage im LISP einbauen. Eine Abfrage einbasteln die den voreingestellen dyn. Block dann verwendet wäre da sicher die besser Variante. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 31. Aug. 2009 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für xem
Zitat: Original erstellt von xem: Eine Abfrage einbasteln die den voreingestellen dyn. Block dann verwendet wäre da sicher die besser Variante.
Wo ist denn der Unterschied zwischen: # Dyna.Block variiert einfügen (bei vorher feststehenden Parametern) # Dyna.Block in Grundform einfügen und danach die Parameter entsprechend CAD-Huebners Vorschlag ändern. Im Ergebnis erhälst Du doch eine Dyna.Block Einfügung in der gewünschten Ausprägung. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 31. Aug. 2009 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 11:55 <-- editieren / zitieren --> Unities abgeben:
Also wenn ich CAD-Huebners Vorschlag richtig verstehe, schreibe ich die Einstellungen für den dyn. Block in die Programmierung. Es soll aber der Block so verwendet werden, wie er zuvor eingestellt (als Muster) wurde. Denn jedes Raster hat unterschiedliche Einstellungen im Block. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 31. Aug. 2009 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 15:01 <-- editieren / zitieren --> Unities abgeben:
Ich habe das mal versucht: Code: (defun c:test (/ Blockn corner1 corner2 columns rows roomwidth roomheight colspacing rowspacing) (setq layfarb "2"); Farbe für Layer (command "layer" "m" "E-Konstruktion" "fa" layfarb "E-Konstruktion" "") (setq corner1 (getpoint "erste Ecke im Raum: ") corner2 (getpoint "gegenüber liegende Ecke: ") columns (getint "Anzahl X Richtung: ") rows (getint "Anzahl Y Richtung: ") roomwidth (abs (- (car corner1) (car corner2))) roomheight (abs (- (cadr corner1) (cadr corner2))) colspacing (/ roomwidth columns) rowspacing (/ roomheight rows) lowerleft (list (min (car corner1) (car corner2)) (min (cadr corner1) (cadr corner2)) ); end list ) (setq punktx (+(car lowerleft) (/ colspacing 2.0))) (setq punkty (+(car lowerleft) (/ rowspacing 2.0))) (setq ss (ssget)) (setq ins (cdr (assoc 10)))
(if ss (command "_copy" ins (list(+ (car lowerleft) (/ colspacing 2.0))(+ (cadr lowerleft) (/ rowspacing 2.0))0) "" "" "")) (if (= columns 1) (command "_array" "l" "" "R" rows columns rowspacing) (if (= rows 1) (command "_array" "l" "" "R" rows columns colspacing) (command "_array" "l" "" "R" rows columns rowspacing colspacing) ) ) )
Nur kommt dann nach der Auswahl: Befehl: erste Ecke im Raum: gegenüber liegende Ecke: Anzahl X Richtung: 2 Anzahl Y Richtung: 2 Objekte wählen: 1 gefunden Objekte wählen: ; Fehler: Zu wenig Argumente weiß jemand woran es liegt? ------------------ 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: 31. Aug. 2009 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 15:17 <-- editieren / zitieren --> Unities abgeben:
(setq ins (cdr (assoc 10 ss))) Bin doch kein Profi. Habe mir 1000 Posts durchgelesen und mir was versucht zusammen zu reimen. Ich werde wenigstens schon mal nach einen Objekt gefragt . ------------------ 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: 31. Aug. 2009 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für xem
ss ist bei dir ein Auswahlsatz ... keine Liste , auf die du die Funktion cdr anwenden könntest ... (cdr(assoc 10(entget (ssname SS 0)))) könnte vielleicht was werden .... nimmt das erste Objekt im Auswahlsatz , erzeugt die GC-Liste und ermittelt den Wert des GC10. Bei leerem Auswahlsatz .. einem Objekt ohne GC10 ect ... gehts aber schief. Und Profi muß man nicht sein .. : Wissen kann man sich aneignen -.. z.b. hier ------------------ - 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 |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 31. Aug. 2009 17:31 <-- editieren / zitieren --> Unities abgeben:
So gehts fast. Die Aufteilung bezieht sich auf den ausgewählten Block und nicht auf das ausgewählte Rechteck. Code: (defun c:test (/ Blockn corner1 corner2 columns rows roomwidth roomheight colspacing rowspacing) (setq corner1 (getpoint "erste Ecke im Raum: ") corner2 (getpoint "gegenüber liegende Ecke: ") columns (getint "Anzahl X Richtung: ") rows (getint "Anzahl Y Richtung: ") roomwidth (abs (- (car corner1) (car corner2))) roomheight (abs (- (cadr corner1) (cadr corner2))) colspacing (/ roomwidth columns) rowspacing (/ roomheight rows) lowerleft (list (min (car corner1) (car corner2)) (min (cadr corner1) (cadr corner2)) ); end list ) (setq punktx (+(car lowerleft) (/ colspacing 2.0))) (setq punkty (+(car lowerleft) (/ rowspacing 2.0))) (setq ss (ssget))
(if (= columns 1) (command "_array" ss "" "R" rows columns rowspacing)
(if (= rows 1) (command "_array" ss "" "R" rows columns colspacing) (command "_array" ss "" "R" rows columns rowspacing colspacing) ) ) )
Warum bezieht der sich auf den ausgewählten Block? Der ausgewählte Raum wird doch mit "rowspacing" und "colspacing" übergeben??? ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 01. Sep. 2009 10:21 <-- editieren / zitieren --> Unities abgeben:
So funzt es! Code: (defun c:test (/ Blockn corner1 corner2 corner3 columns rows roomwidth roomheight colspacing rowspacing) (setq corner1 (getpoint "erste Ecke im Raum: ") corner2 (getpoint "gegenüber liegende Ecke: ") columns (getint "Anzahl X Richtung: ") rows (getint "Anzahl Y Richtung: ") roomwidth (abs (- (car corner1) (car corner2))) roomheight (abs (- (cadr corner1) (cadr corner2))) colspacing (/ roomwidth columns) rowspacing (/ roomheight rows) lowerleft (list (min (car corner1) (car corner2)) (min (cadr corner1) (cadr corner2)) ); end list ) (setq punktx (+(car lowerleft) (/ colspacing 2.0))) (setq punkty (+(car lowerleft) (/ rowspacing 2.0)))(setq ss (ssget)) (setq corner3 (getpoint "Basispunkt")) (command "_copy" ss "" corner3 (list(+ (car lowerleft) (/ colspacing 2.0))(+ (cadr lowerleft) (/ rowspacing 2.0))0) "" "" "") (if (= columns 1) (command "_array" "l" "" "R" rows columns rowspacing) (if (= rows 1) (command "_array" "l" "" "R" rows columns colspacing) (command "_array" "l" "" "R" rows columns rowspacing colspacing) ) ) )
In der Befehlszeile steht nur noch was komisches? Weiß jemand woran das liegt? Befehl: test erste Ecke im Raum: gegenüber liegende Ecke: Anzahl X Richtung: 3 Anzahl Y Richtung: 5 Objekte wählen: 1 gefunden Objekte wählen: Basispunkt_copy Objekte wählen: 1 gefunden Objekte wählen: Basispunkt angeben oder [Verschiebung/Mehrfach] <Verschiebung>: Zweiten Punkt angeben oder <ersten Punkt der Verschiebung verwenden>: Befehl: TEST Unbekannter Befehl "TEST". Drücken Sie F1-Taste für Hilfe. Befehl: TEST Unbekannter Befehl "TEST". Drücken Sie F1-Taste für Hilfe. Befehl: TEST Unbekannter Befehl "TEST". Drücken Sie F1-Taste für Hilfe. Befehl: _array Objekte wählen: l 1 gefunden Objekte wählen: Anordnungstyp eingeben [Rechteckig/Polar] <R>: R Zeilenanzahl eingeben (---) <1>: 5 Spaltenanzahl eingeben (| ||) <1> 3 Zeilenabstand eingeben oder Zelle angeben (---): 25.39358319009657 Spaltenabstand angeben (| ||): 52.62763971261907 Befehl: nil Und hat jemand noch eine Idee wie automatisch der Basispunkt vom ausgewählten Objekt genommen wird? ------------------ 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: 01. Sep. 2009 10:26 <-- editieren / zitieren --> Unities abgeben: Nur für xem
das mit dem 3xTEST hängt bestimmt daran : (command "_copy" ss "" corner3 (list(+ (car lowerleft) (/ colspacing 2.0))(+ (cadr lowerleft) (/ rowspacing 2.0))0) "" "" "") und zum Basispunkt des ausgewählten Objektes habe ich dir oben schon was gepostet. Wenn du eh bloß 1 Objekt bearbeiten willst : nimm doch (car(entsel)) statt (ssget ..)
------------------ - 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: 2494 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: 01. Sep. 2009 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 01. Sep. 2009 10:48 <-- editieren / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 01. Sep. 2009 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für xem
Hi xem, und dann noch als dreingabe ein wenig aufpolierten code zum lernen: [Edit: CADmium-Style Prüfung der Eingabewerte eingebaut...]
Code:
(defun C:TEST (/ COLSPACING COLUMNS CORNER1 CORNER2 CORNER3 LOWERLEFT PUNKTX PUNKTY ROWS ROWSPACING SS ALT-OSMODE ) (setq ALT-OSMODE (getvar "osmode")) ;_ Speichern des aktuellen OFang (if (not (and (setq CORNER1 (getpoint "\nErste Ecke des Raumes definieren... ") ) (setq CORNER2 (getcorner ;_ Getcorner um ein Rechteck aufzuziehen CORNER1 "\nGegenüberliegende Ecke des Raumes definieren... " ) ) (setq COLUMNS (getint "\nAnzahl Richtung \"Rechts\": ")) (setq ROWS (getint "\nAnzahl Richtung \"Hoch\": ")) (setq SS (car (entsel "\nObjekt zur Rastererstellung wählen:")) ) ) ) ;_ Prüfung der Eingabewerte (alert "Fehler bei der Ermittlung der Berechnungsgrundlagen... Funktionsende!" ;_ Rückmeldung an den User, das einer der Werte nicht eingegeben wurde ) (if (not (setq CORNER3 (assoc 10 (entget SS)))) ;_ Prüfung ob das gewählte Rasterobjekt eine Gruppencode 10 hat (alert "Gewähltes Objekt besitzt keinen DXF Gruppencode \"10\" der als Basispunkt verwendet werden könnte... Funktionsende!" ;_ Rückmeldung an User, wenn nicht. ) (progn ;_ faßt nachfolgende Funktionen zusammen (if kann nur je einen Ausdruck für if, und eine für else ausführen) (setvar "osmode" 0) ;_ OSMODE vor Berechnung und Einfügung des Rasterobjekts ausschalten (setq COLSPACING (/ (abs (- (car CORNER1) (car CORNER2))) COLUMNS) ;_ der ganze Berechnungskram ROWSPACING (/ (abs (- (cadr CORNER1) (cadr CORNER2))) ROWS) LOWERLEFT (list (min (car CORNER1) (car CORNER2)) (min (cadr CORNER1) (cadr CORNER2)) ) PUNKTX (+ (car LOWERLEFT) (/ COLSPACING 2.0)) PUNKTY (+ (car LOWERLEFT) (/ ROWSPACING 2.0)) ) (command "_copy" ;_ Ausführung des Kopieren-Befehls mit selektiertem Rasterobjekt SS "" (cdr CORNER3) (list (+ (car LOWERLEFT) (/ COLSPACING 2.0)) (+ (cadr LOWERLEFT) (/ ROWSPACING 2.0)) 0 ) ) (cond ;_ Condition anstatt einer Reihe von if's ((= COLUMNS 1) ;_ Wenn Bedingung erfüllt... (command "_array" "l" "" "R" ROWS COLUMNS ROWSPACING) ;_ dann dies ) ((= ROWS 1) ;_ Wenn Bedingung erfüllt... (command "_array" "l" "" "R" ROWS COLUMNS COLSPACING) ;_ dann das ) ('t ; ansonsten (command "_array" "l" "" "R" ROWS COLUMNS ROWSPACING COLSPACING ) ;_das hier ) ;_ end 'T ) ;_ end cond ) ;_ end progn ) ;_ end if ) ;_ end if (setvar "osmode" ALT-OSMODE) ; Setze osmode wieder auf alten wert (princ) ;_ Funktionsrückmeldung nil unterdrücken ) ;_ end defun
Am besten in der VLIDE anschauen, ist da deutlich übersichtlicher ;-)------------------ Ciao, Marc
[Diese Nachricht wurde von marc.scherer am 01. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 01. Sep. 2009 11:27 <-- editieren / zitieren --> Unities abgeben:
bei: Code: (setq ins(cdr(assoc 10(entget(ssname SS 0)))))
kommt: Befehl: test erste Ecke im Raum: gegenüber liegende Ecke: Anzahl X Richtung: 2 Anzahl Y Richtung: 2 Objekt wählen: ; Fehler: Fehlerhafter Argumenttyp: lselsetp <Objektname: 72c25140>
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 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: 01. Sep. 2009 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für xem
|
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: 01. Sep. 2009 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für xem
Zitat: Original erstellt von xem: bei:Code: (setq ins(cdr(assoc 10(entget(ssname SS 0)))))
kommt: Befehl: test erste Ecke im Raum: gegenüber liegende Ecke: Anzahl X Richtung: 2 Anzahl Y Richtung: 2 Objekt wählen: ; Fehler: Fehlerhafter Argumenttyp: lselsetp <Objektname: 72c25140>
Tja, wo fügst du den denn ein? (if(setq ss(ssget)) (setq ins(cdr(assoc 10(entget(ssname SS 0))))) ) klappt bei mir wenn ich eine Linie oder was ähnliches wähle ... ------------------ - 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 |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 04. Mai. 2010 12:13 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe festgestellt, in einigen Zeichnungen das LISP nicht ganz funktioniert. Die zu kopierenden Blöcke werden zwar richtig angeordnet, aber nicht an der richtigen Stelle. Sie liegen irgend wo in der Zeichnung, als wenn die Koordinaten nicht mit den Klicks zusammen paßen. Gibt es da was wo man überprüfen kann ob die Koordinaten der Klicks richtig übernommen werden? ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 04. Mai. 2010 12:36 <-- editieren / zitieren --> Unities abgeben: Nur für xem
- Behauptung - Ich kann dich beruhigen, sie werden sicher RICHTIG übernommen (ob du das so wolltest oder nicht ist eine andere Sache) -Fakt- Das wichtigste bei automatisierten Arbeiten mit "Commands" ist OSNAPCOORD , mehr würde mir adhoc nicht einfallen (wie immer: am besten ein nachvollziehbares Beispiel posten) ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 04. Mai. 2010 13:22 <-- editieren / zitieren --> Unities abgeben:
Hallo, hier mal eine Datei dazu. Habe den Befehl auf das Rechteck angewendet und die Blöcke sind davon geflogen. Hier der Code dazu:
Code: ;eine Leuchte als Raster kopieren (defun C:belk (/ COLSPACING COLUMNS CORNER1 CORNER2 CORNER3 LOWERLEFT PUNKTX PUNKTY ROWS ROWSPACING SS ALT-OSMODE ) (setq ALT-OSMODE (getvar "osmode")) ;_ Speichern des aktuellen OFang (if (not (and (setq CORNER1 (getpoint "\nErste Ecke des Raumes definieren... ") ) (setq CORNER2 (getcorner ;_ Getcorner um ein Rechteck aufzuziehen CORNER1 "\nGegenüberliegende Ecke des Raumes definieren... " ) ) (setq COLUMNS (getint "\nAnzahl Richtung \"Rechts\": ")) (setq ROWS (getint "\nAnzahl Richtung \"Hoch\": ")) (setq SS (car (entsel "\nObjekt zur Rastererstellung wählen:")) ) ) ) ;_ Prüfung der Eingabewerte (alert "Fehler bei der Ermittlung der Berechnungsgrundlagen... Funktionsende!" ;_ Rückmeldung an den User, das einer der Werte nicht eingegeben wurde ) (if (not (setq CORNER3 (assoc 10 (entget SS)))) ;_ Prüfung ob das gewählte Rasterobjekt eine Gruppencode 10 hat (alert "Gewähltes Objekt besitzt keinen DXF Gruppencode \"10\" der als Basispunkt verwendet werden könnte... Funktionsende!" ;_ Rückmeldung an User, wenn nicht. ) (progn ;_ faßt nachfolgende Funktionen zusammen (if kann nur je einen Ausdruck für if, und eine für else ausführen) (setvar "osmode" 0) ;_ OSMODE vor Berechnung und Einfügung des Rasterobjekts ausschalten (setq COLSPACING (/ (abs (- (car CORNER1) (car CORNER2))) COLUMNS) ;_ der ganze Berechnungskram ROWSPACING (/ (abs (- (cadr CORNER1) (cadr CORNER2))) ROWS) LOWERLEFT (list (min (car CORNER1) (car CORNER2)) (min (cadr CORNER1) (cadr CORNER2)) ) PUNKTX (+ (car LOWERLEFT) (/ COLSPACING 2.0)) PUNKTY (+ (car LOWERLEFT) (/ ROWSPACING 2.0)) ) (command "_copy" ;_ Ausführung des Kopieren-Befehls mit selektiertem Rasterobjekt SS "" (cdr CORNER3) (list (+ (car LOWERLEFT) (/ COLSPACING 2.0)) (+ (cadr LOWERLEFT) (/ ROWSPACING 2.0)) 0 ) ) (cond ;_ Condition anstatt einer Reihe von if's ((= COLUMNS 1) ;_ Wenn Bedingung erfüllt... (command "_array" "l" "" "R" ROWS COLUMNS ROWSPACING) ;_ dann dies ) ((= ROWS 1) ;_ Wenn Bedingung erfüllt... (command "_array" "l" "" "R" ROWS COLUMNS COLSPACING) ;_ dann das ) ('t ; ansonsten (command "_array" "l" "" "R" ROWS COLUMNS ROWSPACING COLSPACING ) ;_das hier ) ;_ end 'T ) ;_ end cond ) ;_ end progn ) ;_ end if ) ;_ end if (setvar "osmode" ALT-OSMODE) ; Setze osmode wieder auf alten wert (princ) ;_ Funktionsrückmeldung nil unterdrücken ) ;_ end defun
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 04. Mai. 2010 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für xem
geht doch... solltest deine Koordinaten mal umrechnen oder dein Koordinatensystem zurückstellen ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xem Mitglied Zeichner
Beiträge: 854 Registriert: 07.08.2008 Software: AutoCAD 2022 - 64bit Windows 10 Pro - 64bit PDFCreator 1.0.2 - 32bit Ghostscript 9.0 - 64bit PDF-XChange Viewer - 64bit GIMP 2.6.8 - 64bit MS Office 2013 - 32bit Opera 12 - 32bit MacroX - 32bit 7-zip - 64bit ----------------------- Hardware: Intel i5 680 3,6GHz @ 4GHz 8GB RAM 1333MHz nVidia GTX 460 1024MB Intel SSD 2.5 80GB X25-M Samsung SyncMaster 245B+ Iiyama ProLite E1900s Logitech mx518 Logitech G11 Roccat Sense Glacier Blue
|
erstellt am: 04. Mai. 2010 14:03 <-- editieren / zitieren --> Unities abgeben:
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 04. Mai. 2010 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für xem
Zitat: Original erstellt von xem: manchmal sind es die einfach Dinge ...
ja ;) kannst ja mal folgende Zeilen einbauen - ungetestet Code: (trans(list (+ (car LOWERLEFT) (/ COLSPACING 2.0)) (+ (cadr LOWERLEFT) (/ ROWSPACING 2.0)) 0 ) 1 0)
Edit: hier einbauen
Code: ... (command "_copy" ;_ Ausführung des Kopieren-Befehls mit selektiertem Rasterobjekt SS "" (cdr CORNER3) (list (+ (car LOWERLEFT) (/ COLSPACING 2.0)) (+ (cadr LOWERLEFT) (/ ROWSPACING 2.0)) 0 ) ) ...
und ... egal
------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." [Diese Nachricht wurde von Dorfy am 04. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |