Hi Andrea,
ich bewundere ja wirklich die Zähigkeit, mit der du da vor dich hin kämpfst, aber irgendwie machst du dir das Leben selber schwer. Die Lösung für dieses Problem hast du schon lange, es ist die Funktion (newbies...) in meinem Skript, das ich dir geschickt habe.
Also:
(setq ElementZumMerken(entlast))
...Querschnitt erzeugen usw...
...Punkte erzeugen...
(setq diesePunkte(newbies ElementZumMerken))
(setq ElementZumMerken(entlast))
...Querschnitt erzeugen usw...
...Punkte erzeugen...
(setq jenePunkte(newbies ElementZumMerken))
(newbies...) gibt einfach alle Elemente zurück, die nach dem ElementZumMerken erzeugt wurden (musst du evtl. noch aussieben).
Hier noch mal der Code:
(defun newbies(lastent / retlist)
(while(setq lastent(entnext lastent))
(setq retlist(cons lastent retlist))
)
)
Noch ein Hinweis: So wie es aussieht, würdest du mit vlax-curve-getPointAtDist wohl weitaus besser fahren als mit dem Teilen einer Polylinie, weil da keine Punkte als Entities erzeugt werden, sondern nur welche berechnet werden. Du müsstest hinterher also keinen Müll rausbringen usw. Zu den vlax-curve-Funktionen bin ich grad an einem Kapitel für mein Tutorial dran, ist fast fertig. Wird aber trotzdem noch ein paar Tage dauern, weil ich ziemlich im Stress bin zur Zeit.
Es bleibt übrigens bei dem, was ich schon mal geäussert habe: Eigentlich wäre das alles in einer Stunde lösbar, wenn du nur exakt sagen könntest, wie das Ergebnis sein soll. Stell's dir einfach so vor: Du hast einen Klotz aus Holz und einen Stift, und jemand anders soll die Streifen draufmalen. Allein, ohne Fehler, ohne Rückfragen. Was sagst du ihm, wie er das machen soll?
Meine Vermutung ist eben, dass du es gar nicht könntest. Es ist ein topologisches Problem, aber kein programmiertechnisches.
Gruss, Axel
------------------
http://www.tutorial.autolisp.info
http://www.advanced.autolisp.info
http://www.activex.autolisp.info
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP