Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  kurze Linien automatisch löschen

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:  kurze Linien automatisch löschen (116 mal gelesen)
Wolli
Mitglied
Konstrukteur


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

Beiträge: 704
Registriert: 28.02.2001

Win7 64Bit+32Bit VM-Ware
I7 12GB
ACAD Mech 2010
Inventor Pro 2010 + 2012
Ansys 13 NLS

erstellt am: 29. Jan. 2002 13: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

Hallo zusammen,

ich suchen ein Lisp oder VBA welches mir alle Linien unter z.B. 10mm länge löscht.
ich hätte mir das so vorgestellt:
Programmstart => Abfrage nach der Länge unter der gelöscht werden soll=> Fenster in dem gelöscht weden soll. Es werden alle Linien unter der Länge gelöscht egal ob in Normteilen oder Blöcken.
Irgendwo sollte man im Programm noch Layer definieren können die aus dem Löschen ausgenommen werden z.B. AM_5 für Bemaßung.

Hat jemand so ein Programm oder ein ähnliches welches sich anpassen lässt?

Danke und Gruß Wolfgang

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: 2494
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: 29. Jan. 2002 14:15    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 Wolli 10 Unities + Antwort hilfreich

Hi Wolli,
in etwa so?

Code:

(defun c:shortdel (/      DEL-LEN   ERSTE INDEX    LIN-LEN
   OBJ      OBJDAT    SGET SGET-LEN  SGET2-LEN
   ZWEITE
  )
  (initget 7)
  (setq del-len (getreal
   "\nKurze Linien erfassen. Schwellwert für Länge eingeben: "
) ;_ end getreal
)
  (princ "\nObjekte wählen... Linien werden gefiltert...")
  (setq sget (ssget (list (cons 0 "LINE")))
sget-len (sslength sget)
sget2 (ssadd)
index 0
  ) ;_ end setq
  (while (< index sget-len)
    (setq obj   (ssname sget index)
  objdat  (entget obj)
  erste   (cdr (assoc 10 objdat))
  zweite  (cdr (assoc 11 objdat))
  lin-len (sqrt (+ (expt (- (car zweite) (car erste)) 2)
   (expt (- (cadr zweite) (cadr erste)) 2)
) ;_ end +
  ) ;_ end sqrt
    ) ;_ end setq
    (if (<= lin-len del-len)
      (setq sget2 (ssadd obj sget2))
    ) ;_ end if
    (setq index (1+ index))
  ) ;_ end while
  (setq sget2-len (sslength sget2))
  (princ
    (strcat "\nDWG analysiert. Schwellwert: \""
    (rtos del-len)
    "\""
    "\nLinien gesamt: \""
    (itoa sget-len)
    "\" / Linien kleiner/gleich Wert: \""
    (itoa sget2-len)
    "\""
    "\nErmittelte Linien gespeichert in \"!SGET2\"..."
    ) ;_ end strcat
  ) ;_ end princ
  (princ)
) ;_ end defun

(princ "\nKurze Linien erfassen. \"SHORTDEL\" startet das Programmm.")
(princ)


Löschen kannst Du dann mit der Befehlszeile. Bei der Frage nach den Objekten einfach !SGET2 eingeben (ausrufezeichen in Befehlszeile gibt den Wert für 'ne Lispvariable zurück). Oder bau' das löschen gleich mit ein (command "_.erase" sget2 "").

Alles weitere mußt Du dann schon einbauen, oder mit gesperrten Layern arbeiten.
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 29. Januar 2002 editiert.]

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

Wolli
Mitglied
Konstrukteur


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

Beiträge: 704
Registriert: 28.02.2001

Win7 64Bit+32Bit VM-Ware
I7 12GB
ACAD Mech 2010
Inventor Pro 2010 + 2012
Ansys 13 NLS

erstellt am: 29. Jan. 2002 15:23    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 Marc,

danke für Deine schnelle Hilfe.
Ich habs gleich ausprobiert, das Programm findet auch die richtige Anzahl der zu kuzen Linien (allerdings nicht die in Blöcken)

Das Löschen habe ich ans Ende gesetzt
...
...
) ;_ end defun
(command "_.erase" sget2 "")

aber es wird nichts gelöscht.


Kannst Du mir da noch einen kleinen Tipp geben.

Danke und Gruß Wolfgang


Befehl: shortdel

Kurze Linien erfassen. Schwellwert für Länge eingeben: 30

Objekte wählen... Linien werden gefiltert...
Objekte wählen: Entgegengesetzte Ecke angeben: 5 gefunden

Objekte wählen:

DWG analysiert. Schwellwert: "30"
Linien gesamt: "5" / Linien kleiner/gleich Wert: "2"
Ermittelte Linien gespeichert in "!SGET2"...

Befehl:

[Diese Nachricht wurde von Wolli am 29. Januar 2002 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: 2494
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: 29. Jan. 2002 17:07    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 Wolli 10 Unities + Antwort hilfreich

Hi,
Code:

(defun C:SHORTDEL (/      DEL-LEN   ERSTE INDEX    LIN-LEN
   OBJ      OBJDAT    SGET SGET-LEN  SGET2-LEN
   ZWEITE
  )
  (initget 7)
  (setq DEL-LEN
(getreal
   "\nKurze Linien erfassen. Schwellwert für Länge eingeben: "
) ;_ end getreal
  ) ;_ end setq
  (princ "\nObjekte wählen... Linien werden gefiltert...")
  (setq SGET (ssget (list (cons 0 "LINE")))
SGET-LEN (sslength SGET)
SGET2 (ssadd)
INDEX 0
  ) ;_ end setq
  (while (< INDEX SGET-LEN)
    (setq OBJ   (ssname SGET INDEX)
  OBJDAT  (entget OBJ)
  ERSTE   (cdr (assoc 10 OBJDAT))
  ZWEITE  (cdr (assoc 11 OBJDAT))
  LIN-LEN (sqrt (+ (expt (- (car ZWEITE) (car ERSTE)) 2)
   (expt (- (cadr ZWEITE) (cadr ERSTE)) 2)
) ;_ end +
  ) ;_ end sqrt
    ) ;_ end setq
    (if (<= LIN-LEN DEL-LEN)
      (setq SGET2 (ssadd OBJ SGET2))
    ) ;_ end if
    (setq INDEX (1+ INDEX))
  ) ;_ end while
  (if (> (sslength SGET2) 0)
    (progn
      (command "_.erase" SGET2 "")
      (princ (strcat "\nAlle Linien die kürzer als: \""
     (rtos DEL-LEN)
     "\" sind gelöscht !"
     ) ;_ end strcat
      ) ;_ end princ
    ) ;_ end progn
    (princ (strcat "\nKeine kurzen Linien für Schwellwert: \""
   (rtos DEL-LEN)
   "\" gefunden !"
   ) ;_ end strcat
    ) ;_ end princ
  ) ;_ end if
  (princ)
) ;_ end defun

(princ "\nKurze Linien erfassen. \"SHORTDEL\" startet das Programmm.")
(princ)


Löschen von Elementen INNERHALB von Blöcken, macht meiner Meinung nach KEINEN Sinn, wozu erstelle ich mir denn Standardsymbole? Um die nachher wieder kurz und klein zu "Lispeln"?
Ciao,
Marc

P.S. Cadmium hatte das mal erweitert: Siehe hier

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

Wolli
Mitglied
Konstrukteur


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

Beiträge: 704
Registriert: 28.02.2001

Win7 64Bit+32Bit VM-Ware
I7 12GB
ACAD Mech 2010
Inventor Pro 2010 + 2012
Ansys 13 NLS

erstellt am: 29. Jan. 2002 17: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

Hallo Marc,

das mit den Blöcken ist so:
- Es gibt z.B. 30 Maschinen jede ist mit hilfe von Blöcken  strukturiert.
- Es wird ein Aufstellungsplan erstellt in den dann die Maschinen jeweils als Block eingefügt werden.
- Da die Dateigröße im Aufstellungsplan zu groß wird und es auf Details im Aufstellungsplan nicht ankommt sollen alle kurze Linien im Aufstellungsplan oder auch vorher in einer Kopie der Maschinen auch in Blöcken gelöscht werden.
Wenn es mit dem Löschen in den Blöcken nicht hinhaut dann wird es auch so gehen: Maschine um 100000 auf die Seite schieben, alles Ursprung bis zum geht nicht mehr, kurze Linien löschen, den Rest packen und als Block wieder an die richtige Stelle einfügen.

Danke für Deine Hilfe
Gruß Wolfgang

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