Autor
|
Thema: automatische blocknamen vergabe (2228 mal gelesen)
|
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 02. Jun. 2010 23:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, such mich echt schon krumm, wahrscheinlich nur irgendwie falschgeschrieben oder nach den falschen gesucht, egal. Suche ein script- oder eine lispdatei die folgendes kann: - wenn mann objekte auswählt und die zu einen block generieren möchte, ist dies ja grundsätzlich kein problem. Nur habe ich leider bald keine idee mehr welche nahmen ich den blöcken geben könnte. - nun ist mir aufgefallen, wenn man objekte aus anderen Zeichnungen als Block integriert, wird von AutoCAD automatisch ein name dafür erzeugt. - möchte diese eigenschaften innerhalb einer zeichnung nun auch anwenden können. Hat von euch jemand eine idee. vielen dank schon im voraus ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
charlieBV Ehrenmitglied V.I.P. h.c. Bauzeichnerin
Beiträge: 9317 Registriert: 28.08.2003
|
erstellt am: 03. Jun. 2010 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Hi, die Frage wäre aber besser im Rund um Autocad oder im ACA oder so aufgehoben gewesen. Nun ja, ich nehme die Objekte, die ich haben möchte ins Fenster, kopieren mit Basispunkt, dann die Elemente löschen, Rechtsklick, als Block einfügen. Dann hast du genau so einen mystisch benannten Block wie beim einfügen von Fremdelementen.
------------------ Gruß Yvonne Inoffizielle ADT-Help-Site "Gehe nicht, wohin der Weg führen mag, sondern dorthin, wo kein Weg ist, und hinterlasse eine Spur." Jean Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 03. Jun. 2010 08:59 <-- editieren / zitieren --> Unities abgeben:
Hi, danke für die Lösung, ist für die meisten Anwender sicherlich okay so. Aber gibt es kein script das ich an einen Butten oder über ein Makro ausführen kann? Immerhin gibt es auch User die nicht so vertraut sind in ACAD, bei dehnen wird das schon wieder zum problem. aufjedenfass danke für deine mühen. ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-64bit Office365 ProPlus C3D & LT ET; DACH; Extensions ------------------- hw: FX3800 i5CPU670 8GB
|
erstellt am: 03. Jun. 2010 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Moin, ich wollte nicht fragen, aber ich muß: Warum möchte man "wilde" Blocknamen haben? Ich find es immer toll, wenn der Blockname ansatzweise etwas mit dem Blockinhalt zu tun hat (Tisch, Laterne, Lichtschalter, KanaldeckelRund usw.). Wenn Dir "die Namen ausgehen", dann nimm Nummern, die gehen so schnell nicht aus [Spinnereimodus an:] Nutz die uservariable useri1 für die automatische Nummerierung. Code: ^C^C(setvar "useri1" (+ 1 (getvar "useri1")))(princ);_-block;(getvar "useri1");\
Zu beachten: es wird die Befehlszeilenvariante -block verwendet. Die verhält sich ein wenig anders als die Dialogversion. Das siehst Du dann aber schon Vielleicht ergänzt Du das Makro noch um den Befehl: _-insert;(getvar "useri1");\;;; das fügt Dir die Blockreferenz direkt wieder ein. Die Sache mit der Basispunktwahl ist sehr schwammig, vor allem beim Wiedereinfügen, das liegt an der Benutzerpickmöglichkeit "\" das kann man mit festen Koordinaten verhindern (0,0,0) [Spinnereimodus aus] ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 03. Jun. 2010 14:58 <-- editieren / zitieren --> Unities abgeben:
hallo runkelruebe, zuerst danke für die antwort, das script läuft jedoch bei mir nicht, da es die systemvariable "useri1" nicht erkennt. zu den Blöcken ist zu sagen, das wir im Layoutgeschäft tätig sind, wir schnell mal was modellieren und diese nachher als blöcke zusammenfügen, bei deiser arbeit ist der eindeutige name für den Block (modellgrupierung verschiedener Objekte) nicht von belangen, ich habe es nur satt immer wieder einen namen oder eine zahl reinzuklopfen. Für all die anderen Objekte die für unser geschäft und auch für die stückliste wichtig sind haben wir natürlich eindeutige namen. Wenn es ein script git, welche Blocknamen mit systemzeiten vergibt, ist es mir eigentlich auch egal, hauptsache keine blöcke mehr klopfen. Du musst dir vorstellen, wir planen eine anlage, modellieren einen bereich müssen diesen später mehrmahls kopieren und änderen diese blockversionen immer wieder ab, bis wir das gesamtlayout erstellt haben. lg. Magab ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 03. Jun. 2010 15:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Runkelruebe, also das script läuft jetzt, jedoch wird mir nach der erstellung des blockes dieser auch zugleich gelöscht! Ansonsten wär das genau mein ding, dass ich eigentlich haben wollte.
------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-64bit Office365 ProPlus C3D & LT ET; DACH; Extensions ------------------- hw: FX3800 i5CPU670 8GB
|
erstellt am: 03. Jun. 2010 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Hi Magab >> jedoch wird mir nach der erstellung des blockes dieser auch zugleich gelöscht! das ist genau das, was ich meinte mit Zitat: Zu beachten: es wird die Befehlszeilenvariante -block verwendet. Die verhält sich ein wenig anders als die Dialogversion. Das siehst Du dann aber schon Vielleicht ergänzt Du das Makro noch um den Befehl: _-insert;(getvar "useri1");\;;; das fügt Dir die Blockreferenz direkt wieder ein.
Teste damit ein wenig herum, wenn der Basispunkt für Dich nicht von Bedeutung sein sollte, also ein (0,0,0) OK wär, dann könntest Du die \ durch 0,0,0 ersetzen. Schau's Dir mal an. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 03. Jun. 2010 18:28 <-- editieren / zitieren --> Unities abgeben:
Hi Runkelrübe, also ich ahb das von dir ausprobiert und bekomme es einfach nicht hin, muss auch gestehen kenne mich bei weiten nicht so aus. Die systemvariablen die du genannt hast, hab ich heute zum ersten mal gehört. Nichts den so trotz, habe <<^C^C(setvar "useri1" (+ 1 (getvar "useri1")))(princ);_-block;(getvar "useri1");\_-insert;(getvar "useri1");\;;;>> als makro ausgeführt und nicht den gewünschten erfolg erzielt. Ideal wäre, auf Knopf drücken, einfügepunkt wählen, objekte wählen, automatischer blockname und fertig. Werde dies aber selber wahrscheinlich nicht hinbekommen. Trotzdem noch vielen dank für deine mühen. ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-64bit Office365 ProPlus C3D & LT ET; DACH; Extensions ------------------- hw: FX3800 i5CPU670 8GB
|
erstellt am: 03. Jun. 2010 20:21 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Hey Magab, Aufgeben gildet nich ;-) Aber letzter Vorschlag von mir, danach darfst Du in Ruhe selber weiter rumprobieren ;-)
>> Ideal wäre, auf Knopf drücken, einfügepunkt wählen, objekte wählen, automatischer blockname und fertig. here we go:
Code: ^C^C_.ucs;\;_.select;\(setvar "useri1" (+ 1 (getvar "useri1")))(princ);_.-block;(getvar "useri1");0,0,0;_p;;_.-insert;(getvar "useri1");0,0,0;;;;_.ucs;_p;
Was tut das Makro:Setzt erst das BKS auf den Basispunkt des späteren Blocks (den mußt Du also zuerst wählen, ACAD fragt nach Punkt für BKS: > anklicken) startet dann eine Objektwahl, hier wählst Du die Elemente des späteren Blocks zählt die useri1 hoch erzeugt einen Block aus der vorherigen Auswahl mit Basispunkt 0,0,0 (in dem eben erzeugten BKS) fügt eine Blockreferenz des grad erzeugten Blocks am selben Punkt wieder ein setzt das BKS zurück auf das vorherige Wenn Du Dich damit anfreunden kannst, die Objekte vorher auszuwählen, sieht es so aus:
Code: ^C^C_.ucs;\;(setvar "useri1" (+ 1 (getvar "useri1")))(princ);_.-block;(getvar "useri1");0,0,0;_p;;_.-insert;(getvar "useri1");0,0,0;;;;_.ucs;_p;
also einfach ohne das WAHL (select) vorneweg.Du siehst hoffentlich: ich probier auch nur rum ;-) Buttonmakros auf dieser Ebene sind im Prinzip ja nix anderes als die Befehle nacheinander in der Befehlszeile abarbeiten. Anregungen findest Du viele im Rund um AutoCAD-Brett. Ganz frisch: dieser thread: http://ww3.cad.de/foren/ubb/Forum54/HTML/025415.shtml#000009 darin hab ich ein paar links vermerkt, die auch Du lesen solltest. Die nächste Stufe wäre dann lisp (http://www.autolisp-tutorial.mapcar.net/) das ich aber leider nicht schreiben kann. Wenn Du also Zeit und Lust hast, das zu lernen, schau Dich auch mal im Lisp-Brett von CAD.de um. Viel Erfolg und noch nen schönen Restfeiertag ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 04. Jun. 2010 09:44 <-- editieren / zitieren --> Unities abgeben:
Hi Runkelruebe, erstmals danke, echt fetter code läuft genau so wie ich mir das vorgestellt habe. Jedoch habe ich da noch eine andere frage, kann mann anstatt useri1 die kernelzeit abfragen und diese auch als blockname einsetzten? Denke dadurch wäre der Blockname (09:40.23 nämlich 094023) und somit immer eindeutig, weil wenn ich die erzeugte blöcke mit 1 oder so in eine andere zeichnung einfüge und dieser schon vorhanden ist, ... denn rest kennst du ja er würde falsch aktualisiert werden. und zum thema lisp, hört sich genial an ist aber wahrscheinlich nicht so schnell zu erlernen, bkeibe aber dran. ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-64bit Office365 ProPlus C3D & LT ET; DACH; Extensions ------------------- hw: FX3800 i5CPU670 8GB
|
erstellt am: 04. Jun. 2010 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Hi, jo, das geht bestimmt, aber hier verlassen wir die Gewässer, in denen ich grad noch so stehen kann Ich hätte es vielleicht so versucht: (rtos(getvar "date")) statt dem useri1. Also code: Code: ^C^C_.ucs;\;_.-block;(rtos(getvar "date"));0,0,0;_p;;_.-insert;(rtos(getvar "date"));0,0,0;;;;_.ucs;_p;
Aber Achtung: das läuft mehr schlecht als recht, vor allem, wenn zwischen zwei Aufrufen des Befehls zu wenig Zeit liegt. Außerdem is doof, wenn zwischen Block erstellen und Block wieder einfügen zu viel Zeit vergangen ist :D Das zweite könnte man abfangen, indem man den Blocknamen an eine Variable vergibt und die danach wieder holt... Könnte so gehen: Code: ^C^C_.ucs;\;_.select;\_.-block;(setq BLN (rtos(getvar "date")));0,0,0;_p;;_.-insert;BLN;0,0,0;;;;_.ucs;_p;
Also: nimm das, was Du hast und sei glücklich, es ist mehr als Du gestern um diese Zeit hattest Oder fang mit lisp an. Ich müßte mich jetzt zu tief in die Lisphilfe knien, als ich das geplant hab, um Dir ne schöne Funktion rauszusuchen, die aus der Variable DATE das macht, was Du verwenden kannst für Dein Vorhaben.
Sorry.
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 04. Jun. 2010 10:35 <-- editieren / zitieren --> Unities abgeben:
Hi Runkelruebe, ein echt fettes merci nochmal für deine hilfe, solch ein service wird heute leider nur noch all zu selten kommuniziert. Also nochmals Danke an dich. ps: werd mich selber mahl in die lisp kiste reinarbeiten, falls sich was vernünftiges ergibt, lasse ich es dich wissen. hab noch ein schönes Wochenende. ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Ehrenmitglied V.I.P. h.c. 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: 04. Jun. 2010 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
|
Magab Mitglied Konstrukteur
Beiträge: 66 Registriert: 06.04.2005 Win7 XEON QUAD 3,6 Ghz 32GB Ram 1333MHZ FSB NVidia QuadroFX PNY 4500 1.5GB ACA/ACAD/MCAD/AIS Series
|
erstellt am: 04. Jun. 2010 12:15 <-- editieren / zitieren --> Unities abgeben:
Hi CADmium, das script ist echt super, danke erst mal. Hab jetzt noch eine frage: - wie bekomme ich das script über einen Button zum laufen - wie kann ich mir den code anschauen Bin leider in diesen Fach erst am anfang. ------------------ Es gibt keine Dummen Fragen, nur Dumme Antworten CU. Magab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-64bit Office365 ProPlus C3D & LT ET; DACH; Extensions ------------------- hw: FX3800 i5CPU670 8GB
|
erstellt am: 04. Jun. 2010 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für Magab
Hi, bin zwar nicht CADmium, aber ich antworte trotzdem ;-) Lisptool auf button: >> klick << bzw. >> hier << Befehlsaufrufe werden Dir angezeigt, wenn Du das tool lädst. -> diese Aufrufe gehören dann auf einen button. Code angucken: aus der vlx keine Chance, ob sich der Ersteller bestechen läßt, mußt Du mit ihm selber abklären Anmerkung: Für nen absoluten Beginner ist der code imho eh ne Spur zu hoch, fang langsam an, link zum Tutorial hab ich Dir oben gegeben. Du wirst mehr davon haben, Dich mit den Grundlagen vertraut zu machen, in der Mitte einsteigen bringt's nicht wirklich, glaub mir, ich hab's versucht ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...
System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope [Diese Nachricht wurde von runkelruebe am 04. Jun. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|