Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Objekte die sich überschneiden

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:  Objekte die sich überschneiden (966 mal gelesen)
RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 01. Aug. 2008 12: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


Zeichnung1.jpg

 
Hallo

Ist möglicht programmtechnisch die Objektnamen von den Kreisen die sich mit dem 4eck überschneiden (sehe Anhang) herausfinden. Für jeden Hinweis bin ich sehr dankbar.

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 01. Aug. 2008 12: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 RoyCAD 10 Unities + Antwort hilfreich

Wenn dir das Rechteck bekannt ist (also die Punkte) dann kannst du diese Kreise mittels (ssget "F" [ptlist]) ermitteln (landen in einem Auswahlsatz).

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 01. Aug. 2008 15: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 RoyCAD 10 Unities + Antwort hilfreich

Und wenn dir die Punkte nicht bekannt sind kannst du vielleicht mit:
  (setq ent_name (car (entsel "Rechteck wählen : ")))
  (print "Kreise wählen : ")
  (setq satz (ssget))
  (setq n (1- (sslength satz)))
  (repeat (sslength satz)
    (setq x (vlax-invoke-method
              (vlax-ename->vla-object ent_name)
              'intersectwith
              (vlax-ename->vla-object (setq e_name (ssname satz n)))
              acextendnone
            )
    )
    (if
      (/= -1
          (vlax-safearray-get-u-bound
            (vlax-variant-value x)
            1
          )
      )
      (print e_name)
    )
    (setq n (1- n))
  )

was machen

Gruß
Andreas

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

RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 04. Aug. 2008 10:17    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


Sauger.txt

 
Hallo,

ich habe das Programm so geschrieben. Der funktioniert aber nicht richtig.
Sehe die DWG im Anhang es werden nicht alle Kreise (Blöcke) gelöscht die, die Kontur überschneiden. Was habe ich falsch gemacht?


(defun C:SAUGER ( / Auswahl_0 Auswahl_1 Auswahl_2 )
  (setq Auswahl_0 (car (entsel)))
    (if (/= (cdr(assoc 0 (entget Auswahl_0))) "LWPOLYLINE" )
    (alert "Schnittkontur ist keine Polylinie. Bitte bearbeiten!!!")
      (progn
(setq Auswahl_1 (vl-remove-if-not
    '(lambda (ED)
      (= (car ED) 10)
    )
    (entget Auswahl_0)
  )
  Auswahl_2 (mapcar 'cdr Auswahl_1)
        );_setq
        (command "_erase" (ssdel Auswahl_0 (ssget "_F" Auswahl_2)) "")
);_end progn
      );_end if
)

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 04. Aug. 2008 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 RoyCAD 10 Unities + Antwort hilfreich

Also ein Problem entsteht dadurch, dass du Bögen in den PLs verwendest - diese werden aber bei deiner Punkteermittlung nicht mitaufgenommen. Somit entsteht hier schon mal ein Fehler - warum aber manche Punkte (obwohl diese richtig übergebne werden) keine Elemente mitaufnehmen ist mir nicht ganz klar... (an der Präzision liegt es nicht...)

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

[Diese Nachricht wurde von tunnelbauer am 04. Aug. 2008 editiert.]

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

RoyCAD
Mitglied
Dipl-Ing Energietechnik


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

Beiträge: 206
Registriert: 24.05.2004

Win XP
AutoCAD2008-2010
Inventor 2008-2010
Productstream Compass
P4 3,0GHz
512MB Ram

erstellt am: 04. Aug. 2008 10: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

Ein Verbesserungsvorschlag Deinerseits.
Lässt sich da noch was machen, weil ich finden keinen Einsatzpunkt.

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 04. Aug. 2008 11: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 RoyCAD 10 Unities + Antwort hilfreich

Hallo,
Du könntest mit der Methode vla-intersectwith testen, ob sich die Elemente (Polylinie + Kreis) schneiden (also mehr als 0 Schnittpunkte im Array). Wenn dem so ist, dann löschen...
ABER: vla-intersectwith ist mit Blöcken problematisch. Du müsstest erst den Block auflösen, die erhaltenen Elemente testen, und abhängig vom Ergebnis das Original löschen / behalten.

Grüsse, Henning

------------------
Henning Jesse
VoxelManufaktur
Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

benwisch
Mitglied
Bautechniker, CAD-Konstrukteur


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

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 04. Aug. 2008 11:39    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 RoyCAD 10 Unities + Antwort hilfreich

Guten Morgen zusammen,
Code:

(defun draw (#pllst)
    (command "_line" (car #pllst))
    (foreach point (cdr #pllst) (command point))
    (command "")
  )


Aufruf : (draw Auswahl_2)

Verwende oben stehenden Code um deine Punkteliste nachzufahren, dann müsstest du erkennen, wo das Problem ist.

Nun wandelst du den Code ab und siehst, daß einfach der erste Punkt an die cdr-Liste angehängt wird, es wird also geschlossen ;)

Code:
(defun draw (#pllst)
  (command "_line" (car #pllst))
  (foreach point (append (cdr #pllst) (list (car #pllst)))
    (command point)
  )
  (command "")
)

Ja und dann hat Tunnelbauer ja schon richtig erkannt, daß in der Polylinie ein Bogen drin ist. 

------------------
CADmaro.de

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