| |
| 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: Durchmesserzeichen (1377 mal gelesen)
|
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 12. Sep. 2006 13:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, benötige mal hilfe und zwar folgendes lisp-Programm : erzeugt ein durchmesserzeichen bei text oder mtext (ok ich hab nur %%U durch %%C ersetzt), was muß ich machen bei einer bemassung. ---------------------------------------------------------------- ;;;WRITEN BY CLINTON COGSWELL ;;;@22.08.2002 ;;; (defun C:ud (/ ED EN) (setvar "cmdecho" 0) (setq texttype "TEXT") (setq mtexttype "MTEXT") (princ "\nwähle Text/Mtext oder drücke enter um einen Block anzuwählen(Texte innerhalb eines Blockes werden berücksichtigt)....") (setq en (ssget)); Sets ed to the entity data (if (= nil en)(UT)) (if (/= nil en)(setq MULTI (sslength en))) (setq index 0) (IF (and (/= EN NIL)(/= nil multi)) (PROGN (repeat multi (SETQ ed (entget (SSNAME EN index))) (SETQ EDTYPE (CDR (ASSOC 0 ED))) (IF (= TEXTTYPE EDTYPE) (PROGN (setq txtvalue (cdr (assoc 1 ed))) (setq allready (substr TXTVALUE 1 3)) (IF (= ALLREADY "%%c")(setq under (substr txtvalue 4))) (if (/= allready "%%c")(setq under (strcat "%%c" txtvalue))) (setq ed (subst (cons 1 under) (assoc 1 ed) ; Changes the layer group in ed. ed ; to layer MYLAYER. ) ) (entmod ed) (setq index (+ index 1)) ) ) (IF (= MTEXTTYPE EDTYPE) (PROGN (setq txtvalue (cdr (assoc 1 ed))) (setq allready (substr TXTVALUE 1 3)) (IF (= ALLREADY "{\\L") (progn (setq under (vl-string-left-trim "{\\L" txtvalue)) (setq under (vl-string-right-trim "}" under)))) (if (/= allready "{\\L") (progn (setq under (strcat "{\\L" txtvalue)) (SETQ UNDER (strcat under "}")))) (setq ed (subst (cons 1 under) (assoc 1 ed) ; Changes the layer group in ed. ed ; to layer MYLAYER. ) ) (entmod ed) (setq index (+ index 1)) ) ) ) ) ) (IF (or (= EN NIL)(= nil multi))(princ)) ) (DEFUN UT (/ ABTXT) (SETQ ABTXT (NENTSEL)) (IF (/= NIL ABTXT) (PROGN (SETQ ABTXT (ENTGET (CAR ABTXT))) (setq txtvalue (cdr (assoc 1 ABTXT))) (setq allready (substr TXTVALUE 1 3)) (IF (= ALLREADY "%%u")(setq under (substr txtvalue 4))) (if (/= allready "%%u")(setq under (strcat "%%u" txtvalue))) (setq ABTXT (subst (cons 1 under) (assoc 1 ABTXT) ; Changes the layer group in ed. ABTXT ; to layer MYLAYER. ) ) (entmod ABTXT) (COMMAND "REGEN") ) ) (IF (= NIL ABTXT)(Alert "Es wurde nichts gewählt!")) ) ---------------------------------------------------------- gruß ZEC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 12. Sep. 2006 13:21 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
in der Gefahr als Nörgler dazustehen.. interpretiere ich deine Frage so, dass du gerne bei einer Bemaßung ein Durchmesserzeichen vorsetzen willst?! Da sollte die helfen: (defun c:setD4pre(/ Auswahl INDEX) (if(or(setq AUSWAHL(ssget "_I" '((0 . "DIMENSION")))) (setq AUSWAHL(ssget '((0 . "DIMENSION")))) ) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (vla-put-textprefix (vlax-ename->vla-object(ssname AUSWAHL(setq INDEX (1+ INDEX))))"%%c") ) ) ) ) ------------------ - 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 |
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 12. Sep. 2006 14:23 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 12. Sep. 2006 14:31 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 12. Sep. 2006 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Zitat: Original erstellt von CADmium: in der Gefahr als Nörgler dazustehen...
Für nichtinsider - Das hat mit einem anderen Beitrag zu tun - hier also Nörgelquote Null.
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 12. Sep. 2006 15:07 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 12. Sep. 2006 15:44 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Hallo Zec, dann wird es wohl so sein: Entweder eine rechte Klammer zu viel - oder eine linke zu wenig:-( Gib mal in ACAD "_.vlide" ein und kopiere die Routine hinein, da kannst Du´s Dirordentlich formatieren und siehst auch fehlende Klammern besser. Eine schließende Klammer entspricht IMMER einer öffnenden Klammer. Viel Glück! Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 12. Sep. 2006 16:07 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 12. Sep. 2006 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Hallo Zec, könnte mit der Version zusammenhängen?! In diesem Fall wäre es hilfreich, wenn Du Deine Supportangaben ausfüllen würdest. Ich muß an dieser Stelle leider passen, aber das macht eine Hilfe durch die anderen Mitglieder ungeheuer leichter:-) Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 12. Sep. 2006 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Zitat: Original erstellt von Zec: hallo,es klappt bis zur auswahl besätigen und dann : ; Fehler: no function definition: VLAX-ENAME->VLA-OBJECT gruß zec
Dann muss einmalig in einem Lisp-Programm die Active X Schnittstelle von Lisp initialisiert werden mit dem Befehl Code:
(vl-load-com)
Am besten in der ersten Zeile des Lisp Quelltexte einfügen.
------------------ Mit freundlichem Gruß Udo Hübner 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: 12. Sep. 2006 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
|
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 12. Sep. 2006 16:28 <-- editieren / zitieren --> Unities abgeben:
|
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 14. Sep. 2006 09:29 <-- editieren / zitieren --> Unities abgeben:
hallo marc, hab da noch was, und zwar hab ich das programm auf einen button gelegt beim ersten test klapps, aber nehme ich irgendeinen anderen befehl und dann wieder meinen button, führt er den vorherigen befehl nochmal aus, was ist falsch. gruß Zec Programm Acad 2004 TGA-Desktop 6.0 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: 14. Sep. 2006 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
|
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 14. Sep. 2006 11:56 <-- 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: 14. Sep. 2006 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Öh, gehe ich recht in der Annahme das die Datei in der die Funktion >setd4pre< definiert ist den Namen >%%C.lsp< trägt? Warum heißt die Datei nicht so wie die Funktion? >setd4pre.lsp< Na egal, versuch mal folgendes Makro (wenn die Lisp Datei denn >%%C< heißt):
Code:
^C^C(if(null C:SETD4PRE)(load "%%C"))(princ);setd4pre;
In Deinem Code sind Leerzeichen enthalten, die werden genau wie >;< als >ENTER< interpretiert. Da liegt IMHO der Fehler.
------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 14. Sep. 2006 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Hallo Zec, da scheint mir ein Leerzeichen zuviel drin zu sein? Leerzeichen entspricht ";", nur daß man´s eben nicht sooo gut sieht. Funktion: Simuliert das Drücken der [Enter]-Taste - da hast Du Deine Wiederholung. Zitat: ^C^C(load "%%C")_;setd4pre;_
1 Leerzeichen ist sicher da - das erste - das zweite vermute ich nur. Habe die " " durch "_" ersetzt. [Edit: Marc war schneller:-( Edit] Gruß Frederik [Diese Nachricht wurde von Paulchen am 14. Sep. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 14. Sep. 2006 12:51 <-- editieren / zitieren --> Unities abgeben:
|
Zec Mitglied Cad Konstr.
Beiträge: 58 Registriert: 28.09.2005
|
erstellt am: 19. Sep. 2006 09:35 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 19. Sep. 2006 17:55 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
|
ralficad Mitglied Konstrukteur
Beiträge: 330 Registriert: 25.11.2005 AMD Athlon XP 2800+ 2,08 GHz 1,0 GB RAM WIN XP Prof., SP2<P>ACAD 2005 - nackig, EPT
|
erstellt am: 20. Sep. 2006 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für Zec
Zitat: Original erstellt von Zec: hallo,was muß ich machen wenn ich jetzt ein rechtecksymbol ->" □ " einfügen möchte. danke vorab ZEC
Habe mich als stiller Teilhaber der angebotenenen Hilfen bedient, klappt super. Obige Frage interessiert mich aber auch noch ebenso wie evtl. der Bogen über der Maßzahl, geht das (für ein dargestelltes Bogenmass)? So, muss erstmal unities verteilen
------------------ ralfi Man muss das Rad nicht neu erfinden, man muss nur wissen, wie man es dreht. st.w. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |