| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | Hannover Messe 2026 - Diese Lösungen prägen die Zukunft der Industrie: PNY präsentiert Anwendungen für KI, Edge-Computing und das Metaversum, eine Pressemitteilung
|
|
Autor
|
Thema: ENTITY (896 mal gelesen)
|
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
  
 Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2002 Autocad 2002LT + Extender ADT 3.3 ArchiCAD
|
erstellt am: 05. Aug. 2003 11:53 <-- editieren / zitieren --> Unities abgeben:         
hallo ihr übriggebliebenen... versuche gerade eine Polylinie innerhalb eines Blockes zu modifizieren. habe sie mir auch schon herausgefiltert und wollte nun die Koordinaten aller 10er mit dem jeweils gleichen x- und y-wert aufaddieren. weil ich gerade ein wenig mit MAPCAR herumspiele (ähhh...ich meine jetzt den Befehl ) dachte ich mir...ok...im prinzip habe ich eine liste und will mit bestimmten elementen dieser liste immer das gleiche tun...also kann man mapcar/lambda nehmen. irgendwie erkennt er das ganze jedoch nicht so richtig...RAT? ------------------ .......good vibrations make the world go round Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
 
 Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 06. Aug. 2003 18:30 <-- editieren / zitieren --> Unities abgeben:          Nur für marvin101010
verstehe ich dich richtig ? - alle gleichen x-werte einer vertex-list mit z.b. 100 addieren bsp. '((1 2 3) (4 1 6) (1 2 7)) => '((101 2 3) (4 1 6) (101 2 7)) - alle gleichen y-werte einer vertex-list mit z.b. 200 addieren bsp. '((1 2 3) (4 1 6) (1 2 7)) => '((1 202 3) (4 1 6) (1 202 7)) --- - oder aber alle gleichen x- UND y-werte mit z.b. 300 addieren bsp. '((1 2 3) (4 1 6) (1 2 7)) => '((301 302 3) (4 1 6) (301 302 7))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
  
 Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2002 Autocad 2002LT + Extender ADT 3.3 ArchiCAD
|
erstellt am: 07. Aug. 2003 09:22 <-- editieren / zitieren --> Unities abgeben:         
hallo benwisch ich habe eine polylinie mit zb: (10 1.0 2.0) (10 1.0 3.0) (10 2.0 3.0) (10 1.0 3.0) auf diese werte möchte ich zb (4.3453 6.8905) aufaddieren (10 5.3453 8.8905) (10 5.3453 9.8905) usw... mit einer repeatschleife funzt das wunderbar, mit mapcar nicht...warum? ------------------ .......good vibrations make the world go round Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
 
 Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 07. Aug. 2003 14:41 <-- editieren / zitieren --> Unities abgeben:          Nur für marvin101010
hi marvin, doch das geht mit mapcar  bsp. 1 ------ alle (as10 xP yP) sind in EINER liste gespeichert, also '((as10 xP1 yP1)(as10 xP2 yP2)(as10 xP3 yP3)) hier kommst du nun mit (mapcar '(lambda (elem)... heran, aber... diese liste besteht aus 3 werten -->'(as10 xP1 yP1) , deine aufaddierungs-liste -->'(4.3453 6.8905) hat nur zwei werte. und der erste wert soll ja nicht verändert werden (is' ja der assoc 10) mein vorschlag wäre, dem mapcar eine temp-liste zu übergeben in der der as10 wert nicht mehr existent ist und für dein gesamtergebnis einfach wieder neu hinzufügt wird. bsp. 2 ------ es gibt nur eine liste mit eben den car, cadr sowie caddr werten. hier braucht du IMHO kein lambda. es langt ein mapcar ! aber der car-wert soll ja nicht verändert werden ! auch hier würde ich einfach den as10 wert neu hinzufügen. und hier ein paar code-bsp... (mapcar '+ '(4.3453 6.8905) '(10 1.0 2.0))) ==> '(14.3453 7.8905) du siehst, nur die ersten list-elemente werden bearbeitet. der y-wert ist weg (mapcar '+ '(4.3453 6.8905) (cdr '(10 1.0 2.0))) ==> '(5.3453 8.8905) ich übergebe mapcar nur die liste ab dem 2. wert (cdr). x und y werden nun gesetzt. jedoch der car wert ist nicht da. (cons 10 (mapcar '+ '(4.3453 6.8905) (cdr '(10 1.0 2.0)))) ==> '(10 5.3453 8.8905) ja und so wäre mein vorschlag. einfach mit cons den as10 vorsetzen. und für eine liste mit listwerten erreicht du das dann eben mit (mapcar '(lambda (elem).... wobei dann deine temp-liste mit (cdr elem) erzeugt wird...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
  
 Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2002 Autocad 2002LT + Extender ADT 3.3 ArchiCAD
|
erstellt am: 07. Aug. 2003 15:11 <-- editieren / zitieren --> Unities abgeben:         
klingt logisch... werde ich morgen testen...wenn du mir jetzt noch sagst, wie ich über eine lisp "m²" gebacken bekomme und nicht "m?" dann bist du entgültig mein held  ------------------ .......good vibrations make the world go round Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
mkl-cad Mitglied Technischer Zeichner
 
 Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 07. Aug. 2003 17:25 <-- editieren / zitieren --> Unities abgeben:          Nur für marvin101010
Hallo. 3 Möglichkeiten 1. Entweder mit Mtext arbeiten. Dort gibt es Sonderzeichen. Auch Funktionen zum hochstellen dabei die auch mit Lisp erstellt werden können. Ist nur nicht ganz einfach. 2. Nicht mit Standartschrifen wie Simplex oder Txt arbeiten. Bei einigen True-Type Schriften funktionieren Sonderzeichen. Geht allerdings auf die Rechnerleistung 3. Die anhängende simplex.shx benutzen und folgende Sonderzeichen benutzen: %%182 = Text hochstellen und mit beliebigen Text weiterschreiben %%183 = von hochgestellten Text zurück zu normalen Text %%184 = Text tiefstellen und mit beliebigen Text weiterschreiben %%185 = von tiefgestellten Text zurück zu normalen Text %%128 = Eurozeichen Beispiel: m%%1822= m² Wie man Textdateien umschreiben kann möchte ich nicht näher drauf eingehen, da das ziemlich kopliziert ist. Habe selber viele Anläufe für gebraucht. Kann das warscheinlich auf anhieb nicht mehr da das schon länger her ist. Alle andern Sonderzeichen wie %%p = Durchmesser bleiben natürlich erhalten. Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |