Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Liste mit Linienstücken zusammensetzen

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:  Liste mit Linienstücken zusammensetzen (1359 mal gelesen)
AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 15. Mrz. 2004 11:46    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 liebe Forum-Mitglieder,

nun hänge ich seit einer Woche an folgendem Problem und komm nicht weiter.
Ich habe eine Liste, die beinhaltet von mehreren Linien die Teilstücke.
z.B.: (setq Liste  '(((2 2 0)(6 1 0))((0 0 0)(1 0 0))((1 0 0)(2 0 0))((2 0 0)(3 1 0))((6 1 0)(8 3 0))))

Nun sollen einzelne Linienteile einanderzugeordnet werden, dass ich sie jeweils als eine Linie durchzeichnen kann (Polylinie).
Ergebnis soll also sein: (setq Liste_1 '(((0 0 0)(1 0 0)(1 0 0)(2 0 0)(2 0 0)(3 1 0))((2 2 0)(6 1 0)(6 1 0)(8 3 0)))) bzw.
(setq Liste_1 '(((0 0 0)(1 0 0)(2 0 0)(3 1 0))((2 2 0)(6 1 0)(8 3 0))))
=> D.h. es muss geprüft werden, welche Teillinien den gleichen Punkt besitzen, um die Linie weiterzuzeichnen.

Ich hoffe Ihr versteht, was ich meine.

Viele Grüße
Andrea

[Diese Nachricht wurde von AB am 15. Mrz. 2004 editiert.]

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 15. Mrz. 2004 13:43    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 AB 10 Unities + Antwort hilfreich

Hallo Andrea,

ich habe zwar momentan keine fertige Lösung bereit, aber vielleicht einen Ansatz für den Lösungsalgorhythmus. Mit ein paar Schleifen und Vergleichen sollte dies programmierbar sein (komme bloß momentan nicht dazu, frühestens morgen abend).

Hier der Ansatz:

gegeben:
Liste aller Linienabschnitte
Liste gleicher Anzahl Elemente mit 0/1 Kennung, Anfangs alles auf 0 gesetzt, bei Nutzung des Linienabschnittes für Polylinie auf 1 setzen

Ablauf:
1)  ersten (noch nicht genutzten) Linienabschnitt nehmen
2)  in (erste) Polylinienliste packen
3)  ersten Punkt hernehmen
4) alle "zweiten" Punkte noch nicht genutzter Linienabschnitte auf Gleichheit prüfen
    wenn gefunden, wird dieses Linienelement neues ersten Linienelement (Kennung auf "genutzt" setzen)
      dann weiter mit 3)
    wenn nicht gefunden, aktuelles Linienelement ist erstes seiner Polylinie

5) zweiten Punkt des letzten Elementes der aktuellen Polylinie hernehmen
6) alle "ersten" Punkte noch nicht genutzter Linienelemente auf Gleichheit prüfen
    wenn gefunden, wird dieses Linienelement neues letztes Linienelement (Kennung auf "genutzt" setzen)
      dann weiter mit 5)
    wenn nicht gefunden, Polylinie beendet
7) ggf. weiter mit 1) falls noch nicht alle Elemente genutzt.


Viele Grüße
spider_dd

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
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: 15. Mrz. 2004 14:33    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 AB 10 Unities + Antwort hilfreich

Hi AB,
was willst Du erreichen?
Warum verbindest Du die Linien nicht einfach mit "pljoin" (prä-R2004) bzw. "_pedit" (R2004)?

------------------
Ciao,
Marc

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 15. Mrz. 2004 14:37    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 AB 10 Unities + Antwort hilfreich

Hallo Andrea,

ein Ansatz:
Errechne die Entfernungen der einenzelnen Punkte (der nur die Start und Enpunkte der einzelnen Punkt/Liniengruppierungen) zueinander, dann kannst du anhand der geringsten Entfernung entscheiden, wo der Linienzug weiter geführt werden muss.

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 15. Mrz. 2004 14: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


Linieneinzelteile.gif

 
Also,
in dem Anhang kann man einen Ausschnitt meiner Linie sehen.
Diese sollen nun automatisch (soweit sie aneinander liegen) miteinander verbunden werden, so dass ich dann nur noch 15 Linien (wenn ich mich nicht verzählt habe) erhalte. Spider_dd hat das Problem schon ganz richtig erkannt.

Viele Grüße
Andrea

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 15. Mrz. 2004 14:47    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 AB 10 Unities + Antwort hilfreich

Hallo Andrea,

warum sind die Linien überhaupt einzeln .. kann man da nicht schon vorher einen anderen Ansatz verfolgen? Irgendwie sind diese Linien ja auch entstanden.

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

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: 15. Mrz. 2004 14:49    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 AB 10 Unities + Antwort hilfreich

nehme doch (endlich) einfach pedit

Befehl: pedit
bei der Objektwahl Option O (für mehrere Objekte),
dann Option Verbinden wählen..

Du hast zumindest noch keine Argument gegen diesen Befehl vorgebracht..

------------------
- Sebastian -

[Diese Nachricht wurde von cadffm am 15. Mrz. 2004 editiert.]

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
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: 15. Mrz. 2004 14: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 AB 10 Unities + Antwort hilfreich

Sebastian... ruhig brauner...
Hast Du mal versucht pedit auf 3D linien anzuwenden?

------------------
Ciao,
Marc

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: 15. Mrz. 2004 14:58    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 AB 10 Unities + Antwort hilfreich

ich habe keine Ahnung was bei dir 3D-Linien sind,
aber genau das meine ich ja: Andrea hat immernoch nicht erklärt warum nicht pedit genommen werden kann/soll.

------------------
- Sebastian -

[Diese Nachricht wurde von cadffm am 15. Mrz. 2004 editiert.]

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 15. Mrz. 2004 14:59    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

Eben, das funtkioniert nämlich leider nicht.
Ich versuche gerade die Idee von Spider_dd umzusetzen.

(setq Liste  '(((2 2 0)(6 1 0))((0 0 0)(1 0 0))((1 0 0)(2 0 0))((2 0 0)(3 1 0))((6 1 0)(8 3 0))))

(defun Linien ()
(setq Nr 0)

(while (< Nr (length Liste))
  (setq mode 0)
  (setq Beginn (car (nth Nr Liste))
Ende (cadr (nth Nr Liste)))
  ; Prüfen, ob nochmal vorhanden
  (setq a (cons Beginn a))
  (setq a (cons Ende a))
  (while (= mode 0)
    (setq mode 1)
    (mapcar
  (function (lambda (x)
      (if
(equal (car x) Ende)
(progn
  (setq a (cons(cadr x)a))
  (setq Ende (cadr x))
  (setq mode 0)))
      ))
      Liste)
    ); Ende while mode
  (setq Liste_aller_Linien (cons (reverse a) Liste_aller_Linien)
a nil)
  (setq Nr (+ Nr 1))
)
)

Funktioniert nicht richtig. Z.B. komme ich aus der ersten Schleife nicht raus, bzw. zu spät, da nur alle Teillinien 1 Mal verwendet werden dürfen.

Gruß
Andrea

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
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: 15. Mrz. 2004 15:00    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 AB 10 Unities + Antwort hilfreich

Hi Sebastian,
bei mir sind 3D Linien folgendes:
Linien die nicht auf einer Ebene liegen, sondern eben kreuz und Quer im 3D-Raum verteilt. War auch mehr Umgangssprachlich gemeint als fachtechnisch richtig...

------------------
Ciao,
Marc

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: 15. Mrz. 2004 15:02    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 AB 10 Unities + Antwort hilfreich

in deiner Liste ist die 3. Koordinate (Z ?) immer 0, also
liegen die Linien in einer Ebene - Also kann man eine Polylinie
mit pedit erstellen lassen.

das du eine 3D-Poly möchtest (warum auch immer) hast du nicht gesagt-
im Gegenteil sogar, du hast gesagt POLYLINIE erstellen.

------------------
- Sebastian -

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 15. Mrz. 2004 15:08    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

Die Liste wollte ich nur als vereinfachtes Beispiel nehmen. Ich habe nicht gedacht, dass das zu solchen Verwirrungen führen kann und wollte das nicht. Es tut mir leid.
Genauer gesagt sind meine Einzellinien also 3D-Polylinien, mit unterschiedlichen z-Koordinaten.

Ich hoffe, ich habe nicht noch mehr unkläre Äußerungen verwendet.

Viele Grüße
Andrea

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

scj
Mitglied
 


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

Beiträge: 554
Registriert: 09.08.2001

erstellt am: 15. Mrz. 2004 15:09    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 AB 10 Unities + Antwort hilfreich

mit meinem PEDIT3D (von www.black-cad.de)
sollte es gehen...
Viel Erfolg
Jochen

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 15. Mrz. 2004 15:16    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

Dabei erhalte ich leider folgende Feherlmeldung:

; Fehler: Fehlerhafter Argumenttyp: 2D-/3D-Punkt: nil


Gruß
Andrea

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: 15. Mrz. 2004 15:21    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 AB 10 Unities + Antwort hilfreich

Dann wählst du keine 3DPolylinie ...

sondern eine Linie oder Polylinie.

EDIT: scj hat das nicht mit einer Schleife geschrieben,
er macht dir nur einen Linienzug nach dem anderen...
also nicht Alle wählen, sondern nur diejenigen welche
hinterher 1 Objekt werden, also nicht so wie du möchtest (sorry)

------------------
- Sebastian -

[Diese Nachricht wurde von cadffm am 15. Mrz. 2004 editiert.]

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 15. Mrz. 2004 15:24    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 AB 10 Unities + Antwort hilfreich

Warum nicht AutoCAD die Arbeit machen lassen?

Code:

(defun mk-plines(segs / le lines)
  (setq le(entlast))
  (foreach seg segs(command "_line"(car seg)(cadr seg)""))
  (setq le(if le(entnext le)(entnext)))
  (while le(setq lines(cons le lines)le(entnext le)))
  (foreach line lines
    (if(="LINE"(cdr(assoc 0(entget line))))
      (eval(append'(command"_pedit"line"_yes""_join")lines'("""")))
    )
  )
)

(mk-plines liste1)


Ein paar Hinweise:
a) Die Prüfung am Anfang ist nur dazu da, damit die Funktion auch in einer bisher LEEREN Zeichnung funktioniert
b) Es wird nicht getestet, ob unter 2004 diese neu AUTO-POLYLINE-CONVERT...-Sysvar gesetzt ist (wie heisst die ? - fällt mit grad nicht ein). Prüfen oder das "_yes" rausnehmen.
c) Das Verfahren ist sehr effektiv zu programmieren, hat aber ein fürchterliches Laufzeitverhalten. Bei *großen* Datenmengen (sagen wir: mehr als 1000 Linien) würde ich dann doch Gehirnschmalz in Algorithmen investieren. Allerdings kann dann eine unangebrachte Verwendung von append noch schlimmeres Laufzeitverhalten nach sich ziehen.
d) Es mach nix, wenn der pedit-Befehl Enamen von nicht mehr existierend Linien kriegt - die werden ignoriert, wie man sieht.
e) Das Ganze ist wie meistens ungetestet - hab nur einmal ausprobiert, ob es überhaupt läuft.

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 15. Mrz. 2004 15:26    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 AB 10 Unities + Antwort hilfreich

Tja,

die wesentliche Information (3D-Linien) kam erst, während ich hier geschrieben habe...

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
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: 15. Mrz. 2004 15:55    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 AB 10 Unities + Antwort hilfreich

Ätsch, auch reingefallen :-).
Echt lästig, wenn die User immer erst am Ende sagen, was sie wirklich wollen...

Marc-><-AB
..

------------------
Ciao,
Marc
   
   

[Diese Nachricht wurde von marc.scherer am 15. Mrz. 2004 editiert.]

[Diese Nachricht wurde von marc.scherer am 15. Mrz. 2004 editiert.]

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 15. Mrz. 2004 17:51    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 AB 10 Unities + Antwort hilfreich

Macht aber nix, ich fand die Aufgabe interessant;-)

Hier mal ein Ansatz, wie man's machen kann:

Code:

(defun mk-plines3d(segs / vtcs done tmp)
  (while segs
    (setq done nil)
    (setq vtcs(list(caar segs)""))
    (while(not done)
      (if
        (or
          (setq tmp(assoc(car vtcs)segs))
          (setq tmp(reverse(assoc(car vtcs)(mapcar'reverse segs))))
        )
        (if(equal(car vtcs)(car tmp))
          (setq vtcs(cons(cadr tmp)vtcs)segs(vl-remove tmp segs))
          (setq vtcs(cons(car tmp)vtcs)segs(vl-remove tmp segs))
        )
        (setq done'T)
      )
    )
    (mapcar'command(cons"_3dpoly" vtcs))
  )
)

(mk-plines3d liste)


Ist auch wieder eins mit wenig Code und recht viel Laufzeitverhalten, das vl-remove ist ziemlich teuer. Sollte aber für den Hausgebrauch reichen;-)

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 16. Mrz. 2004 09:06    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 AB 10 Unities + Antwort hilfreich


linien.zip

 
Hallo Andrea,

anbei mein Vorschlag, gemäß meinen Ansatz von gestern.
ok, deutlich länger als der von Axel, aber funktioniert auch.
Ergebnis sind Linieabschnittslisten namens poly1, poly2, ...

damit müßte es dann weiter gehen.

Gruß
spider_dd

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 16. Mrz. 2004 09:38    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 Axel,
hallo Spider_dd,

vielen Dank für Eure Hilfe. Das Problem ist somit gelöst und ich bin sehr erleichtert.
Es tut mir leid, dass ich für so viel Verwirrung gesorgt habe. Das wollte ich wirklich nicht.
Beim nächsten Mal versuche ich mich  von Anfang an genauer auszudrücken.

Viele Grüße
Andrea

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 02. Jun. 2004 10:04    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 zusammen,

ich muss dieses Thema noch einmal kurz aufwärmen, das es zum Teil bis zu 1 Stunden dauert, bis alles miteinander verbunden wird.
Wie kann ich das ändern? Ich bin auf keine gloreiche Idee gekommen. Womit sollte ich den Befehl vl-remove ersetzen.

Viele Grüße
Andrea

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 12. Jul. 2004 07:55    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 zusammn,

ich wollte noch mal nachfragen, wie ich das Problem mit dem Laufzeitverhalten minimieren kann.
Was kann ich verwenden, anstatt "vl-remove". Wie mache ich das Programm schneller? Mittlerweile braucht es teilweise halt doch sehr lange.


Viele Grüße
Andrea

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