Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Command _.trim, Fehler in 2015 in Mapcar-Schleife?!?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Command _.trim, Fehler in 2015 in Mapcar-Schleife?!? (1919 mal gelesen)
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 25. Jan. 2015 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


StutzTest.dwg

 
Ich habe mit dem Command-Befehl "_.trim" in AutoCAD 2015 ein Problem (in AutoCAD 2012 tritt das Problem nicht auf)

Als COMMAND-S ist dieser nicht definiert:
AnwendungsFEHLER: Ungültige Element/Punktliste
; Fehler: Unbekannte(r) (command-s) fehlgeschlagen.

Also verwende ich diesen wie immer mit (command "_.trim" ...

Da habe ich aber festgestellt, daß der Command-Befehl aus einer Mapcar-Schleife heraus aufgerufen folgenden Fehler auslöst:

VVC: Internal Error*Abbruch*
oder
Fehler:  Ausnahmebedingung aufgetreten: 0xC0000005 (Zugriffsverletzung)

Scheinbar je nach Laune des Rechners.
Dann habe ich probiert es mit einer FOREACH-Schleife, und, tata, es funktioniert. Der Einzelaufruf ohne Schleife funktioniert ebenfalls.

Fragen:
Kann das irgendwer von Euch nachvollziehen?
Kann mir einer erklären, was bezogen auf den Command-Befehl der Unterschied zwischen Mapcar und Foreach ist??

Anbei nochmal meine Test-Codes: einfach Kreis picken, dann mit Auswahlfenster die Linien auswählen, diese werden dann ausserhalb des Kreises gestutzt. Für die Schleifen habe ich eine Dummy-List mit einem Listeneintrag erstellt. Die zugehörige DWG-Datei "StutzTest.dwg" habe ich angehängt.

Code:

(defun c:TestMapcar ( / AWSLINES N OBJKREIS PKT DummyList)


  (setq DummyList '(1))

  (mapcar (function(lambda(A)
            (setq objKreis (car(entsel "\nKreis picken:")))
            (princ "\nLinien auswählen: ")
            (setq awsLines (ssget (list (cons 0 "LINE"))))
            (setq n 0)
            (repeat (sslength awsLines)
              (setq pkt
                      (trans
                        (polar
                          (cdr(assoc 10 (entget (ssname awsLines n))))
                          (angle (cdr (assoc 10 (entget (ssname awsLines n))))
                                (cdr(assoc 11 (entget (ssname awsLines n)))))
                          (*(cdr(assoc 40 (entget objKreis)))1.1))0 1))

              (command "_.trim" objKreis "" (list (ssname awsLines n) pkt) "")
              (setq n (+ n 1))
              )
            ))DummyList)
  )


(defun c:TestForeach ( / AWSLINES N OBJKREIS PKT DummyList)


  (setq DummyList '(1))

  (foreach A DummyList
            (setq objKreis (car(entsel "\nKreis picken:")))
            (princ "\nLinien auswählen: ")
            (setq awsLines (ssget (list (cons 0 "LINE"))))
            (setq n 0)
            (repeat (sslength awsLines)
              (setq pkt
                      (trans
                        (polar
                          (cdr(assoc 10 (entget (ssname awsLines n))))
                          (angle (cdr (assoc 10 (entget (ssname awsLines n))))
                                (cdr(assoc 11 (entget (ssname awsLines n)))))
                          (*(cdr(assoc 40 (entget objKreis)))1.1))0 1))

              (command "_.trim" objKreis "" (list (ssname awsLines n) pkt) "")
              (setq n (+ n 1))
              )
            )
  )


(defun c:TEST ( / AWSLINES N OBJKREIS PKT)


  (setq objKreis (car(entsel "\nKreis picken:")))
            (princ "\nLinien auswählen: ")
            (setq awsLines (ssget (list (cons 0 "LINE"))))
            (setq n 0)
            (repeat (sslength awsLines)
              (setq pkt
                      (trans
                        (polar
                          (cdr(assoc 10 (entget (ssname awsLines n))))
                          (angle (cdr (assoc 10 (entget (ssname awsLines n))))
                                (cdr(assoc 11 (entget (ssname awsLines n)))))
                          (*(cdr(assoc 40 (entget objKreis)))1.1))0 1))

              (command "_.trim" objKreis "" (list (ssname awsLines n) pkt) "")
              (setq n (+ n 1))
              )
  )
 


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Orthogonalvermassung Youtube

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 26. Jan. 2015 07:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

command im mapcar ist ab 2015 nicht mehr ... :-(

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 26. Jan. 2015 08:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas,
danke für die Antwort. Na dann kann ich ja lange probieren. Ich wette, daß bei mir in Zukunft bestimmt noch ein paar Mapcar-Command-Leichen auftauchen werden 

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Orthogonalvermassung Youtube

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 26. Jan. 2015 10:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

naja .. vielleicht klappts ja in der 2016-er Version wieder ?

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - 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

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 20. Apr. 2015 09:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADmium:
naja .. vielleicht klappts ja in der 2016-er Version wieder ?


       
leider nein

Jürgen

------------------
Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene. (Carl Hilty)

[Diese Nachricht wurde von jupa am 20. Apr. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 11. Sep. 2015 09:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Kleiner Nachtrag:
in 2015 funktionieren die Command-S-Befehle "_.point" und "_.circle" auch in einer FOREACH-Schleife nicht   aber mit einer REPEAT-Schleife geht es 

In 2016 habe ich es nicht probiert.


Ich Revidiere:
Die FOREACH-Schleife funktioniert immer noch, das Problem saß vor dem Rechner

Kann gelöscht werden der Beitrag.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Liniensignaturen Youtube

[Diese Nachricht wurde von joern bosse am 11. Sep. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 11. Sep. 2015 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joern bosse 10 Unities + Antwort hilfreich

auch wenn du das Posting bereits editiert hast, geschrieben hatte ich es ja schon:
----------------------------------------------------------------------------------

ohne großen Kommentar dazu: Diese Beispiele laufen bei mir ALLE unter 2015

Code:
(defun c:CS2015 (/ pdold)
(setq pdold (getvar "PDMODE"))
(setvar "PDMODE" 35)
(setvar "CECOLOR" "1")
(foreach i '(5 6 7 8 9)(command-s "_.CIRCLE" "15,18" i))
(foreach i '(5 6 7 8 9)(command-s "_.POINT" (list 0 i) i))
(setvar "CECOLOR" "2")
(alert "Geben Sie 5 Punkte an")
(foreach i '(10 11 13 18)(command-s "_.CIRCLE" (list (car(getpoint)) i) i))
(alert "Geben Sie weitere 5 Punkte an")
(foreach i '(10 11 13 18)(command-s "_.POINT" (list (car(getpoint)) i) i))
(setvar "CECOLOR" "3")
(mapcar '(lambda(i)(command-s "_.CIRCLE" "20,20" i))  '(1 2 3 4 5))
(mapcar '(lambda(i)(command-s "_.POINT" (list 0 i)))  '(1 2 3 4 5))
(setvar "CECOLOR" "6")
(alert "und nochmal 5")
(mapcar '(lambda(i)(command-s "_.CIRCLE" (list (car(getpoint)) i) i)) '(13 15 12 8 7))
(alert "und nochmal")
(mapcar '(lambda(i)(command-s "_.POINT" (list (car(getpoint)) i) i)) '(13 15 12 8 7))
(setvar "PDMODE" pdold)
  (alert "well done")
)

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz