| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: dotted pair in verbindung mit Mapcar (436 mal gelesen)
|
FeR Mitglied
Beiträge: 150 Registriert: 27.10.2003 WinXP latest SP AutoCAD 2008+germanExpressTools SofiCAD, ProVI HP xw4400 CoreDuo 2.4GHz 2GB RAM NVIDIA Quadro NVS 285
|
erstellt am: 03. Jan. 2006 11:26 <-- editieren / zitieren --> Unities abgeben:
Hi hab da ein kleine Frage zu dotted pair in Verbindung mit Mapcar: Hab mir folgendes Lsp gestrickt um einige Maßstabsleisten zu definieren: Code:
(defun c:mmscl (/) (setq mstabez '("MM1:1" "MM1:2" "MM1:5" "MM1:10" "MM1:15")) (setq mstaverh '("1:1" "1:2" "1:5" "1:10" "1:15"))(mapcar '(lambda(bez verh / ) (command "-scalelistedit" "_Add" bez verh "_Exit") ) mstabez mstaverh) (princ) )
Da ich immer 2 Werte übergebe würde ich diese gerne zusammenhängen damit Fehler im Listenzusammenhang leichter zu finden sind. Gibt´s da eine Möglichkeit?------------------ mfg FeR "gefundene Rechtschreibfehler dürfen behalten werden." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 03. Jan. 2006 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für FeR
Hallo FeR, die Frage ist, ob es denn wirklich jeweils 2 Werte überhaupt benötigst? Ich habe mal eben ein paar Varianten zusammengestellt, bei Fragen ...
Code:
(defun c:mmscl_V01 (/ m_EINHEIT m_MASSTAB) (setq m_EINHEIT "MM") (setq m_MASSTAB '("1:1" "1:2" "1:5" "1:10" "1:15")) (mapcar '(lambda(MST / ) (command "-scalelistedit" "_Add" (strcat m_EINHEIT MST) MST "_Exit") ) m_MASSTAB ) (princ) ) (defun c:mmscl_V02 (/ m_MASSTAB) (setq m_MASSTAB '("MM1:1" "MM1:2" "MM1:5" "MM1:10" "MM1:15")) (mapcar '(lambda(MST / ) (command "-scalelistedit" "_Add" MST (substr MST 3) "_Exit") ) m_MASSTAB ) (princ) ) (defun c:mmscl_V03 (/ m_MASSTAB) (setq m_MASSTAB '(("MM1:1" . "1:1") ("MM1:2" . "1:2") ("MM1:5" . "1:5") ("MM1:10" . "1:10") ("MM1:15" . "1:15") ) ) (mapcar '(lambda(MST / ) (command "-scalelistedit" "_Add" (car MST) (cdr MST) "_Exit") ) m_MASSTAB ) (princ) ) (defun c:mmscl_V04 (/ m_MASSTAB) (setq m_MASSTAB '(("Mst-A" . "1") ("Mst-B" . "2") ("Mst-C" . "5") ("Mst-D" . "10") ("Mst-E" . "15") ) ) (mapcar '(lambda(MST / ) (command "-scalelistedit" "_Add" (car MST) (strcat "1:"(cdr MST)) "_Exit") ) m_MASSTAB ) (princ) )
Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 03. Jan. 2006 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für FeR
Du machst doch gar nichts mit dotted pairs! Du hast Liste 1 und Liste 2. Mapcar führt nun die Lambda-Funktion mit dem jeweils n-tem Listeneintrag aus Liste 1 und dem n-ten Element aus Liste 2 aus. Sollte so laufen. Oder willst du was ganz anderes? Sowas in der Art? (defun c:mmscl (/) (setq mstabez '(("MM1:1" "1:1" ) ("MM1:2" "1:2" ) ("MM1:5" "1:5" ) ("MM1:10" "1:10") ) ) (mapcar '(lambda(X) (command "-scalelistedit" "_Add" (car X)(cadr X) "_Exit") ) mstabez ) (princ) ) ------------------ - 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 |
FeR Mitglied
Beiträge: 150 Registriert: 27.10.2003 WinXP latest SP AutoCAD 2008+germanExpressTools SofiCAD, ProVI HP xw4400 CoreDuo 2.4GHz 2GB RAM NVIDIA Quadro NVS 285
|
erstellt am: 03. Jan. 2006 13:01 <-- editieren / zitieren --> Unities abgeben:
Danke Jungs! @Holger die Version V03 ist die gesuchte! @Thomas deine Version geht noch einfacher, daran hab ich garnicht gedacht, tja wie immer das gute liegt so offensichtlich vor einem. Auf alle Fälle 10 Units für euch. ------------------ mfg FeR "gefundene Rechtschreibfehler dürfen behalten werden." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |