Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Drafting
  Importierte DXF/DWG riesige. Wie Datenmenge reduzieren?

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 PTC CREO
Autor Thema:  Importierte DXF/DWG riesige. Wie Datenmenge reduzieren? (3951 mal gelesen)
uger
Mitglied
CADler & Kinematiker


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

Beiträge: 1106
Registriert: 25.02.2003

erstellt am: 10. Nov. 2011 15: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

Hallo zusammen!

Wie importieren sehr oft Anlagenpläne unserer Kunden in das Me10 hinein (als DXF oder DWG) um dann in diese Anlagen unsere Maschinen einzufügen.

Je nach Ausgangs-CAD-System sind die ME10-Dateien so gross, dass der Rechner an seine Grenzen kommt. Obwohl wir doppelte Elemente bereingigen sind diese Zeichnungung kaum zu handhaben.

Frage: wie kann ich Datenmenge reduzieren? Gibt es eine Möglichkeit sehr kleine Objekte automatisiert zu löschen? Oder gibt es andere Methoden (Software) mit der man die DXF oder DWG-Files vorher bereinigt?

Übrigens: Wir arbeiten mit Me10 8.7G, also einer Version aus der
Steinzeit :-(

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

Deine Wahrnehmung bestimmt deine Realität!
NDS

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

Gerhard Deeg
Ehrenmitglied V.I.P. h.c. i.R.
Konstrukteur aus Leidenschaft



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

Beiträge: 2643
Registriert: 17.12.2000

CREO - OSD - OSM
HP XW4400 - XW4600
Dell Inspiron 17E
NVIDIA QUADRO FX1500
NVIDIA Quadro FX1800
HP Mini 210 2002sg
WIN 7 Ultimate 32/64

erstellt am: 10. Nov. 2011 16:13    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 uger 10 Unities + Antwort hilfreich

Hallo uger,

ich habe jetzt erst kürzlich für einen Kollegen vom CAD.de Daten vom ME10 ins DWG bzw. DXF übersetzt und musste feststellen, dass die Daten bei DWG und auch bei DXF sich sehr groß aufgebläht hatten. Teilweise musste ich die Zeichnungen sogar teilen, da ich diese sonst nicht per Mail hätte zurückschicken können.

Was mir aufgefallen ist, ist, dass manche Texte als Graphic hinterlegt bzw. angefertigt wurden und dann noch mit 0-Abstand schraffiert wurden. Nachdem ich dies alles gelöscht hatte, waren die Daten wieder händelbar.

Du solltest vielleicht mal in dieser Richtung die Zeichnungen durforsten.

Gruss Gerhard

------------------
Jeder erfüllte Wunsch ist ein Traum weniger
Träume sind die Sonnenstunden der Hoffnung

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 10. Nov. 2011 18: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 Nur für uger 10 Unities + Antwort hilfreich

Hallo Uger,

das Problem tritt bei uns auch auf.
Es gibt natürlich die Möglichkeit,
Schraffuren, Punkte (die meistens von ACAD-Bemassung stammen),
leere Teile usw. über die gesamte
Teilestruktur zu löschen.
Damit bekomme ich Zeichnungen schon deutlich kleiner.

Wenn in der Teilestruktur auch z.B. Schrauben usw.
enthalten sind, weil andere Zulieferer ihre Zeichnungen
in den Anlagenplan eingebracht haben, ohne diese vorher
ein wenig abzuspecken, habe ich schon mal alle Teile nach
solchen Namen durchsucht und alle anderen Teile ausgeblendet.

Somit konnte ich dann global alle angezeigten Teile
(z.B. Schrauben) auf einen Rutsch löschen.
So habe ich dann mit z.B. Schraube, Scheibe, Ring, Mutter
Feder usw. alle "Kleinteile" ausgefiltert und relativ
schnell gelöscht.

Falls Du spezielle Probleme hast, melde dich.
Ansonsten sende mir mal eine typische Datei
an info@me10-makros.de (Geheimhaltung garantiert!).
Ich sehe mir die Teilestruktur dann mal an,
um zu sehen, was evtl. die Grösse beeinflusst.

MfG
Robert

------------------
Homepage: www.me10-makros.de

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

riesi
Mitglied
Konstrukteur, CAD-Admin


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

Beiträge: 1001
Registriert: 06.05.2002

SolidWorks 2020-Sp5
OneSpaceDrafting V20.5
MS-Windows 10 Prof. 64Bit
Core i7-6700 @ 3.40 GHz
32,00 GB RAM
ATI WX 5100

erstellt am: 11. Nov. 2011 08: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 uger 10 Unities + Antwort hilfreich

Oftmals wird bei solchen Zeichnungen Datenmüll mitgeschleppt.

Wir haben folgendes festgestellt:
* Mehrfachabbildung, wo eigentlich keine ist, bedingt durch den Import.
* unsichtbare Textelemente; erst mit höheren Versionen lassen sich diese erkennen und löschen.
* In höheren Versionen ist auch ein Speichern mit STORE SELECT GLOBAL möglich, dass benutzen wir gerne um leere Teilestrukturen zu eliminieren.
* Oft ist durch Import einer Zeichnungsableitung aus 3D-Programmen mehr Geometrie drin. Ich denke da gerade an Motoren, wo selbst das Lüftungsgitter, Firmenlogo, etc. drin ist. Das muss nicht sein.

Wenn Du mir ein Hallenlayout zur Verfügung stellen darfst, lasse ich unser Makro "SAUBER_MACHEN", welches die oben genannten Punkte abarbeitet, einmal drüber laufen.

Gruß, Klaus.

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 11. Okt. 2022 10: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 uger 10 Unities + Antwort hilfreich

Hallo zusammen,

ich greife das alte Thema noch einmal auf, da ich von einem Kollegen die Hallenplanung übernehmen darf. Allerdings graut es mir hier, die Layouts sind größtenteils >100 mb und mit 100+ Maschinen bestückt.
Viele natürlich voll detailliert mit Motoren etc., da er immer einfach nur reingeladen hat 
Ich denke die Performance kann man sich vorstellen...

Hat hier jemand Makros die das Aufräumen größtenteils übernehmen und die er zur Verfügung stellen kann?

Gruß
stere0

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

riesi
Mitglied
Konstrukteur, CAD-Admin


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

Beiträge: 1001
Registriert: 06.05.2002

SolidWorks 2020-Sp5
OneSpaceDrafting V20.5
MS-Windows 10 Prof. 64Bit
Core i7-6700 @ 3.40 GHz
32,00 GB RAM
ATI WX 5100

erstellt am: 11. Okt. 2022 12:53    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 uger 10 Unities + Antwort hilfreich

Ein Makro, welches wichtige von unwichtige Gemetrie unterscheiden kann, hätten wir auch gerne.  

Folgender Ablauf hat sich gut bewährt:

Code:

DEFINE Csn_check_inv_geo
  LOCAL Versie
  LOCAL Frage
  LOCAL Ergebniss
  INQ_ENV 0
  LET Versie (VAL (SUBSTR (INQ 301) 22 6))
  IF (Versie>11.6)
    SHOW_INV_GEO GLOBAL CONFIRM
    INQ_SELECTED_ELEM GLOBAL INFOS 'INVISIBLE'
    END
    IF ((INQ 14)>0)
      DISPLAY_NO_WAIT (STR (INQ 14)+' INVISIBLE Geometrie gefunden!')
      DELETE GLOBAL INFOS 'INVISIBLE'
      END
    END_IF
  END_IF
END_DEFINE

Code:

Csn_check_inv_geo
STORE SELECT GLOBAL ALL CONFIRM '{Pfad\MI-Datei}'
RESET_SYSTEM CONFIRM
LOAD CHECK_2D '{Pfad\MI-Datei}'

[Diese Nachricht wurde von riesi am 11. Okt. 2022 editiert.]

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 11. Okt. 2022 15: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 uger 10 Unities + Antwort hilfreich

Ja, so ein Makro wäre Gold wert... 

Naja, hätte gedacht das es vll. machbar ist z.B. Kreise mit Durchmesser unterhalb eines Schwellwertes automatisch zu löschen, oder Linien mit Linienlänge unterhalb X...
Im Anno gibts dazu ja einen Schwellwert den man einstellen kann, der wird aber denke auf die 3D-Daten zurückgreifen um zu bestimmen ob das Teil angezeigt wird oder nicht.

Danke für dein Makro.
Ich habe es mal geladen und die Befehle eingegeben.
Die Funktion Csn_check_inv_geo hat bei mir keine Meldung ausgegeben, zumindest sofern eine kommen sollte falls er was findet.
Das STORE SELECT... hat die Dateigröße von 110 mb auf 21 mb gedrückt.
Allerdings bekomme ich einen Fehler bei LOAD_CKECK_2D, Makro nicht bekannt...
Kann es sein dass du LOAD CHECK_2D meinst?


Habe zudem mal den MI-Check aus dem Face gestartet.
Komischerweise springt die Dateigröße nach dem MI-Check von den 21 mb wieder auf knapp 90 mb 
Habe jetzt aber noch gesehen dass der normale Speicherdialog die .mi nicht komprimiert speichert, der Befehl STORE SELECT speichert die .mi komprimiert.
Daher kommt auch der große Dateiunterschied.
Wenn ich die mit MI-Check bereinigte Datei noch mal mit STORE... speichere, dann komme ich auf knapp 19 mb.

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

riesi
Mitglied
Konstrukteur, CAD-Admin


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

Beiträge: 1001
Registriert: 06.05.2002

SolidWorks 2020-Sp5
OneSpaceDrafting V20.5
MS-Windows 10 Prof. 64Bit
Core i7-6700 @ 3.40 GHz
32,00 GB RAM
ATI WX 5100

erstellt am: 11. Okt. 2022 15: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 uger 10 Unities + Antwort hilfreich

Ja, richtig erkannt, ich meinte
Code:
LOAD CHECK_2D

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

der_Wolfgang
Ehrenmitglied
Tastenhauer


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

Beiträge: 1988
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2006
● Drafting V17~V20.5.0
● Modeling V17~V20.5.0
● @Scirotec201804

erstellt am: 11. Okt. 2022 19: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 Nur für uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von stere0:

Naja, hätte gedacht das es vll. machbar ist z.B. Kreise mit Durchmesser unterhalb eines Schwellwertes automatisch zu löschen, oder Linien mit Linienlänge unterhalb X...
Im Anno gibts dazu ja einen Schwellwert den man einstellen kann

19MB als 7zip Datei ..  bei leicht komprimierbaren Daten .  DAS ist ne FETTE MI Datei . 

kleine Kreise / kurze Linien ..    Wieviel Gold gibst du? -  bei den aktuellen Inlflationsraten muss man(n) sich da echt Gedanken machen...

Ich bin mir sehr unsicher welche Anno Aktion du hier meinst ?  ScreenShot?

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 12. Okt. 2022 11:50    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 uger 10 Unities + Antwort hilfreich


20221012_11-27-14_SolidDesigner.png

 
Da hier im Board Unities das Gold sind, 10 hätte ich davon... 

Im Anno gibt es unter den Ansichtseigenschaften den Reiter Filter, den meinte ich.

Im Drafting kann man sich ja die Elementeinfo anzeigen lassen, da steht die Länge oder der Durchmesser/Radius drin.
Darüber könnte man ja ggf. entsprechende Elemente per Makro selektieren und löschen.

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 13. Okt. 2022 20: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 uger 10 Unities + Antwort hilfreich

Hallo stereO,
untenstehendes Makro löscht Kreise mit Radius <=5 (im Makro anpassen).
Es kann aber nicht ausgeschlossen werden, dass auch andere Elemente erwischt werden.
Deswegen NUR mit einer Kopie ausprobieren!!
Speichere den untenstehenden Text als eva_dsc.mac in z.B. C:\temp ab.
Nach Laden der Zeichnung dann das Makro laden
INPUT'c:\temp\eva_dsc.mac'
und danach aufrufen mit eva_dsc

Gruß Robert

{#########################################################################}
{### Datei eva_dsc.mac                                                ###}
{### Aus Zeichnungen automatisch kreise löschen                        ###}
{### die einen Mindestradius haben oder unterschreiten                ###}
{###    ### ACHTUNG ###  ### ACHTUNG ###  ### ACHTUNG ###            ###}
{###    es kann auch irrtümlich andere Geometrie gelöscht werden      ###}
{### Erstelldatum:    12.10.2022                                      ###}
{### (c) 2022 by E.V.A. Robert Hoffmann                                ###}
{###                                                                  ###}
{### Änderungsdatum:  12.10.2022                                      ###}
{### Art der Änderung: Neuerstellung                                  ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Kürzel _va -> Vorderansicht                                      ###}
{### Kürzel _sa -> Seitenansicht                                      ###}
{### Kürzel _ds -> Draufsicht                                          ###}
{### Kürzel _ut -> Unterteil                                          ###}
{### Kürzel _ot -> Oberteil                                            ###}
{### Kürzel _mt -> Mittelteil                                          ###}
{###                                                                  ###}
{### Zeit:                                                            ###}
{### Erforderliche Makros:                                            ###}
{### Verzeichnis C:/TEMP muss existieren                              ###}
{#########################################################################}

{
input 'd:\eva_me10_macros\share_source\eva_dsc.mac'
}


DEFINE eva_dsc
  LOCAL Ap          LOCAL Apx        LOCAL Apy
  LOCAL Pe  (* Punkt auf Element für Text*)
  LOCAL Pex
  LOCAL Pey
  LOCAL R    (* Radius *)
  LOCAL Anzahl
  LOCAL bearbeitet
  LOCAL eind
  LOCAL Fehler 

  store all del_old 'c:/temp/sicherung.mi'

  OPEN_OUTFILE 1 DEL_OLD ('c:/temp/eva_dsc.txt')
  WRITE_FILE 1 ('eva_dsc')

  LET Zaehler 1
  LET bearbeitet 0

  INQ_SELECTED_ELEM SELECT GLOBAL ALL CONFIRM END
  LET Anzahl (INQ 14)
  WRITE_FILE 1 (Anzahl)

  LOOP
    LET Fehler 0
    EXIT_IF (INQ 14=0)
    IF  (INQ 403=CIRCLE)
      LET eind (INQ 309)
      LET Radius (INQ 3)
      LET Pe (INQ 101 + PNT_RA Radius 45)
      LET Pex (X_OF Pe)
      LET Pey (Y_OF Pe)
      LET Ap (INQ 101)
      LET Apx (X_OF Ap)
      LET Apy (Y_OF Ap)

{############# anpassen #############################}
      IF (Radius <= 5)
        LET bearbeitet (bearbeitet+1)
        delete (PNT_XY PEx Pey) end
        WRITE_FILE 1 ('{ Zaehler '+(STR(Zaehler))+'}')
        WRITE_FILE 1 ('Radius '+(STR (Radius)))
        WRITE_FILE 1 ('Mitte '+(STR (Ap)))
        WRITE_FILE 1 ('PE '+(STR (PE)))
        WRITE_FILE 1 ('CIRCLE '
                      +(STR (Apx))
                      +','
                      +(STR (Apy))
                      +' '
                      +(STR (Radius))
                      +' END'
                    )
      END_IF
{####################################################}

    ELSE
      LET Fehler 1
{
      DISPLAY_NO_WAIT ("unbekanntes Element erwischt: " + STR (INQ 403)) WAIT 0.1
}
    END_IF
    IF (Fehler=0)
      LET Zaehler (Zaehler+1)
    END_IF
    LET Fehler 0
    INQ_NEXT_ELEM
    EXIT_IF (INQ 403= END)
  END_LOOP
  CLOSE_FILE 1
{
  edit_file ('c:/temp/eva_dsc.txt')
}
  DISPLAY (STR (bearbeitet) + ' von ' + STR (Anzahl) + ' geloescht')
END_DEFINE


------------------
Homepage: www.me10-makros.de

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 15. Okt. 2022 14: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 uger 10 Unities + Antwort hilfreich

Hallo noch einmal,
bei inaktiven Teilen löscht er das ganze Teil!!
        delete global (PNT_XY PEx Pey) end
Das global in obiger Zeile verhindert das.
Evtl besser ist folgende Methode unter Benutzunng von POINTER:

{############# anpassen #############################}
      IF (Radius <= 5)
        LET bearbeitet (bearbeitet+1)

DELETE GLOBAL POINTER (INQ 2) END

{
        delete global (PNT_XY PEx Pey) end
}
        WRITE_FILE 1 ('{ Zaehler '+(STR(Zaehler))+'}')
        WRITE_FILE 1 ('Radius '+(STR (Radius)))
        WRITE_FILE 1 ('Mitte '+(STR (Ap)))
        WRITE_FILE 1 ('PE '+(STR (PE)))
        WRITE_FILE 1 ('CIRCLE ' +(STR (Apx)) +',' +(STR (Apy))  +' ' +(STR (Radius)) +' END')
      END_IF
{####################################################}

Gruß Robert Hoffmann

------------------
Homepage: www.me10-makros.de

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

friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 871
Registriert: 01.04.2003

Creo Elements/Direct
Drafting 17+20.x
ui klassisch Tablett+Ribbon,
Modeling 16-20.0+20.4
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 64 @work
Win 7 home prem. 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 16. Okt. 2022 09: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 Nur für uger 10 Unities + Antwort hilfreich

Hallo zusammen
möchte gerne noch was nachreichen.

Ab der v16 sollte man anstelle von POINTER (INQ 2) POINTER (INQ 332) verwenden.
Vor allem wenn man mit einem 64bit System unterwegs ist.
Macht man das nicht, kommt dann bei einem Trace
WARNING - following number token is a valid elem2d pointer. This is unsafe on Win64.
zum Vorschein.
Ist keine Fehlermeldung mit Abbruch sondern nur eine Warnung, aber wenn man schon undokumentierte Funktionen verwendet sollte man diese zumindest beachten.
(Das müsste ich eigentlich Montag mal in der 20.x testen. Lange nicht mehr gemacht.)

Ansonsten wie immer ein super Macro Robert, vor allem lässt es sich durch ein paar zusätzliche Zeilen auf ARC und LINE aufmotzen.
Vieleicht auch noch FILLET obwohl das bei DXF oder DWG Import normalerweise nicht vorkommt.
Dann lässt man das Macro nicht umsonst alle Elemente durchlaufen.
INQ_SELECTED_ELEM SELECT GLOBAL ALL CONFIRM END

Bin gespannt wie viel Gold du bekommst, Unities sind ja Mangelware geworden, meine sind unterwegs 

------------------
Gruss Friedhelm

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 16. Okt. 2022 17: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 Nur für uger 10 Unities + Antwort hilfreich

Hallo Friedhelm,
ich glaube, er hat eine ältere Version, da funktioniert richtigerweise dein Vorschlag nicht.
Also würde ich die Warnung erst einmal ignorieren.
Gruß Robert Hoffmann

------------------
Homepage: www.me10-makros.de

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

friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 871
Registriert: 01.04.2003

Creo Elements/Direct
Drafting 17+20.x
ui klassisch Tablett+Ribbon,
Modeling 16-20.0+20.4
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 64 @work
Win 7 home prem. 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 16. Okt. 2022 19:18    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 uger 10 Unities + Antwort hilfreich

Hallo Robert
der "Themenaufwärmer" ist stere0. Bei ihm in der Info steht Win 10 + V20.
Mir war auch noch eingefallen dass die ACAD-cadler gerne mit Polylines hantieren.
Was passiert wenn das zum Löschen passende Element dazu gehört.
Wird dann die gesammte Kontur gelöscht?
Wollte das auch morgen checken.
So, genug. Gleich gibts Fritten (Pommes wie ihr sagt  ) und danach Marvels Avengers Endgame 

------------------
Gruss Friedhelm

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 17. Okt. 2022 11: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 uger 10 Unities + Antwort hilfreich

Hallo ihr beiden,

danke dir Robert für das Macro, werde versuchen es heute mal auszuprobieren.
Hatte letzte Woche sogar mal auf deiner Webseite nach Macros gesucht die ich vll. umschreiben kann mit meinem begrenzten Wissen.
Aber da warst du schneller 

Zu den Polylinien, die sind an sich auch zu haufe vorhanden. Allerdings habe ich MI-Clean aus dem FACE drüber laufen lassen, das löst die an sich schon auf, sollte daher kein Problem sein, zumindest bei mir.

ME10 in V20 passt...

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 17. Okt. 2022 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 Nur für uger 10 Unities + Antwort hilfreich

Sooo, habe es jetzt mal an einem Teil meines Layouts getestet (Hallengrundriss).
Funktioniert soweit auch ganz gut.
Habe es sowohl mit circle sowohl als auch mit arc getestet.
Hat in beiden Fällen entsprechende Elemente gelöscht.
Im meinem Fall ein paar hundert Kreise, was auch "relativ" schnell ging, und knapp 30.000 Bögen von gut 150.000 Elementen.
Das hat allerdings schon etwas gedauert und ich dachte Zeitweise das ME10 wäre komplett weg gewesen.
Das "Logging" rauszunehmen bringt zumindest keinen zeitlichen Vorteil.

Ich wollte das auch mit Line ausprobieren, allerdings kommen mir da ein paar ??? auf.
Der Radius wird ja mit INQ 3 abgefragt und ich habe jetzt geschaut, ob es auch eine entsprechende Abfrage für die Länge gibt.
Die Element-info, die beim Rechtsklick zu sehen ist (zumindest mit FACE), gibt die Länge bei einer Linie ja auch aus.
Allerdings finde ich in der Dokumentation nichts, nur 101 und 102 für Anfangs- und Endpunkt.
Müsste man sich wahrscheinlich errechnen, oder? 
Da hörts dann aber auch schon bei mir auf von dem was ich selber hinbekomme.

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 17. Okt. 2022 15:42    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 uger 10 Unities + Antwort hilfreich

Hallo stereO,
unten noch einmal das Makro mit Kreisen und Linien.
Du musst das Makro erweitern, indem du mit ELSE_IF (INQ403....)
die weiteren Abfragen einfügst.

{#########################################################################}
{### Datei eva_dsc.mac                                                ###}
{### Aus Zeichnungen automatisch kreise löschen                        ###}
{### die einen Mindestradius haben oder unterschreiten                ###}
{###    ### ACHTUNG ###  ### ACHTUNG ###  ### ACHTUNG ###            ###}
{###    es kann auch irrtümlich andere Geometrie gelöscht werden      ###}
{### Erstelldatum:    12.10.2022                                      ###}
{### (c) 2022 by E.V.A. Robert Hoffmann                                ###}
{###                                                                  ###}
{### Änderungsdatum:  12.10.2022                                      ###}
{### Art der Änderung: Neuerstellung                                  ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Kürzel _va -> Vorderansicht                                      ###}
{### Kürzel _sa -> Seitenansicht                                      ###}
{### Kürzel _ds -> Draufsicht                                          ###}
{### Kürzel _ut -> Unterteil                                          ###}
{### Kürzel _ot -> Oberteil                                            ###}
{### Kürzel _mt -> Mittelteil                                          ###}
{###                                                                  ###}
{### Zeit:                                                            ###}
{### Erforderliche Makros:                                            ###}
{### Verzeichnis C:/TEMP muss existieren                              ###}
{#########################################################################}

{
input 'd:\eva_me10_macros\share_source\eva_dsc.mac'
}


DEFINE eva_dsc
  LOCAL Ap          LOCAL Apx        LOCAL Apy
  LOCAL Ep          LOCAL Epx        LOCAL Epy
  LOCAL Pe  (* Punkt auf Element für Text*)
  LOCAL Pex
  LOCAL Pey
  LOCAL R    (* Radius *)
  LOCAL Anzahl
  LOCAL Laenge
  LOCAL bearbeitet
  LOCAL eind
  LOCAL Fehler 
  LOCAL P

  store all del_old 'c:/temp/sicherung.mi'

  OPEN_OUTFILE 1 DEL_OLD ('c:/temp/eva_dsc.txt')
  WRITE_FILE 1 ('eva_dsc')

  LET Zaehler 1
  LET bearbeitet 0

  INQ_SELECTED_ELEM SELECT GLOBAL ALL CONFIRM END
  LET Anzahl (INQ 14)
  WRITE_FILE 1 (Anzahl)

  LOOP
    LET Fehler 0
    EXIT_IF (INQ 14=0)
    IF  (INQ 403=CIRCLE)
      LET eind (INQ 309)
      LET Radius (INQ 3)
      LET Pe (INQ 101 + PNT_RA Radius 45)
      LET Pex (X_OF Pe)
      LET Pey (Y_OF Pe)
      LET Ap (INQ 101)
      LET Apx (X_OF Ap)
      LET Apy (Y_OF Ap)

{############# anpassen #############################}
      IF (Radius <= 5)
{############# anpassen Ende ########################}
        LET bearbeitet (bearbeitet+1)
        DELETE GLOBAL POINTER (INQ 2) END
        WRITE_FILE 1 ('{ Zaehler '+(STR(Zaehler))+'}')
        WRITE_FILE 1 ('Radius '+(STR (Radius)))
        WRITE_FILE 1 ('Mitte '+(STR (Ap)))
        WRITE_FILE 1 ('PE '+(STR (PE)))
        WRITE_FILE 1 ('CIRCLE ' +(STR (Apx)) +',' +(STR (Apy))  +' ' +(STR (Radius)) +' END')
      END_IF

    ELSE_IF (INQ 403=LINE)
      LET Ap (INQ 101)      LET Apx (X_OF Ap)    LET Apy (Y_OF Ap)   
      LET Ep (INQ 102)      LET Epx (X_OF Ep)    LET Epy (Y_OF Ep)
      LET Pe (Ap+(0.5*(EP-AP)))
      LET Laenge (Ep-Ap)
{############# anpassen #############################}
      IF (ABS (Laenge) <= 1)
{############# anpassen Ende ########################}
        LET bearbeitet (bearbeitet+1)
        DELETE GLOBAL POINTER (INQ 2) END
        WRITE_FILE 1 ('{ Zaehler '+(STR(Zaehler))+'}')
        WRITE_FILE 1 ('Linie')
        WRITE_FILE 1 ('Anfangspunkt '+(STR (Ap)))
        WRITE_FILE 1 ('Endpunkt '+(STR (Ep)))
        WRITE_FILE 1 ('Laenge '+(STR (Laenge)))
        WRITE_FILE 1 ('LINE ' +(STR (Ap)) +' ' +(STR (Ep))  +' END')
      END_IF

    ELSE
      LET Fehler 1
{
      DISPLAY_NO_WAIT ("unbekanntes Element erwischt: " + STR (INQ 403)) WAIT 0.1
}
    END_IF
    IF (Fehler=0)
      LET Zaehler (Zaehler+1)
    END_IF
    LET Fehler 0
    INQ_NEXT_ELEM
    EXIT_IF (INQ 403= END)
  END_LOOP
  CLOSE_FILE 1
{
  edit_file ('c:/temp/eva_dsc.txt')
}
  DISPLAY (STR (bearbeitet) + ' von ' + STR (Anzahl) + ' geloescht')
END_DEFINE

Gruß Robert

------------------
Homepage: www.me10-makros.de

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

der_Wolfgang
Ehrenmitglied
Tastenhauer


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

Beiträge: 1988
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2006
● Drafting V17~V20.5.0
● Modeling V17~V20.5.0
● @Scirotec201804

erstellt am: 18. Okt. 2022 20: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 Nur für uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von r.hoffmann:
unten noch einmal das Makro mit Kreisen und Linien.

Ihr habt das ja schon gut im Griff...    

Aber performance technisch  ..   vielleicht paar Lücken..

Daher zwei 'einstreusel'

Code:
INQ_SELECTED_ELEM SELECT GLOBAL ALL CONFIRM END

Der ist SCHWEINE Teuer und selektiert ja auch alle Bemassungen, Texte, und und und

Vorschlag:

Code:
INQ_SELECTED_ELEM SELECT GLOBAL GEO ALL CONFIRM END
lasst uns mal C_GEO draussen lassen ...

ich denke auch

Code:
DELETE GLOBAL POINTER (INQ 2) END
ist teuer. Weil. Das ist jedesmal ein redraw im VP

Vorschlag:

Code:
{in der loop}
ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ 332) END
{nach der loop}
DELETE GLOBAL INFOS "this_element_will_be_deleted_in_few_milliseconds" END

Den info text definierst Du am besten als lokale Makro Variable mit einem (STR (RND)) hinten dran.

Dann sollte es zum Schluss nur einen Redraw geben, wenn alles auf einen Schlag gelöscht wird.

Ich würde makros NUR noch mit (INQ 332) codieren. Wenn denn Nachzügler mit Asbach Alter Software unterwegs sind sollen DIE sich melden. Aber der Standard sollten die aktuell supporteten Versionen sein (also 20.5 / 20.4) .

---------------------------------------
@stere0  Dir ist schon bewusst das dir mit dem Löschen von Geometrie auch Schraffuren verloren gehen, weil die Kontur nicht mehr geschlossen ist?

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

[Diese Nachricht wurde von der_Wolfgang am 18. Okt. 2022 editiert.]

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 19. Okt. 2022 20:12    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 uger 10 Unities + Antwort hilfreich

Böser Fehler:
In der Abfrage der Linien steht
LET Laenge (Ep-Ap)
für die Länge. Habe leider das LEN vergessen!
Die Zeile muss heissen:
LET Laenge (LEN(Ep-Ap))

Gruß Robert

------------------
Homepage: www.me10-makros.de

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

der_Wolfgang
Ehrenmitglied
Tastenhauer


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

Beiträge: 1988
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2006
● Drafting V17~V20.5.0
● Modeling V17~V20.5.0
● @Scirotec201804

erstellt am: 20. Okt. 2022 17:45    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 uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von r.hoffmann:
Böser Fehler:
gehört dazu ..  irknwii.  Und täglich grüßt das ..  der Bug

Tip:

Code:
LOCAL Withprotocol
LET Withprotocol=1 /* oder eben 0 */

und alle OPEN_FILE, WRITE_FILE, CLOSE_FILE Abschnitte wrappst du mit einem IF Withprotocol .. END_IF

für uns als Entwickler ist so eine Datei oft von grossem Nutzen. Für den Endanwender zu 92% nur Ballast. Also möglichst einfach ein/ausschalten, nach Bedarf.

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 20. Okt. 2022 19: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 uger 10 Unities + Antwort hilfreich

OPEN_OUTFILE 1 DEL_OLD ('c:/temp/eva_dsc.txt')
....
WRITE_FILE 1 ('Laenge '+(STR (Laenge)))
.....

In obiger Datei werden ja die Ergebnisse gespeichert
von den zutreffenden Elementen.
Dies entspricht ja in etwa deinem Vorschlag der Protokolldatei.

Hätte man mal die Datei eva_dsc.txt aufgerufen, wäre zu sehen,
dass bei der Länge ZWEI Werte standen statt des einen für die Länge.
Dummerweise ist mir das auch erst nach dem Posten aufgefallen.

------------------
Homepage: www.me10-makros.de

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

der_Wolfgang
Ehrenmitglied
Tastenhauer


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

Beiträge: 1988
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2006
● Drafting V17~V20.5.0
● Modeling V17~V20.5.0
● @Scirotec201804

erstellt am: 21. Okt. 2022 16:53    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 uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von r.hoffmann:
Dies entspricht ja in etwa deinem Vorschlag der Protokolldatei.
kleines Mistverständnis. Ich meinte die Möglichkeit dieses Logging einfach ausschalten zu können, weil der Endanwender das ding eh 'nicht interpretieren' kann (also oft nicht).

BTW: Systeminfo: OSD 13.2??  Echt??

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

friedhelm at work
Mitglied
Techniker Aluminium Profile


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

Beiträge: 871
Registriert: 01.04.2003

Creo Elements/Direct
Drafting 17+20.x
ui klassisch Tablett+Ribbon,
Modeling 16-20.0+20.4
Lizenz auf USB-Netzwerkadapter
PE-Express 8
Win 10 64 @work
Win 7 home prem. 64 @home
Notepad++,IrfanView,eDrawings,
....

erstellt am: 21. Okt. 2022 20: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 Nur für uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von der_Wolfgang:
BTW: Systeminfo: OSD 13.2??  Echt??

Ich würde makros NUR noch mit (INQ 332) codieren. Wenn denn Nachzügler mit Asbach Alter Software unterwegs sind sollen DIE sich melden. Aber der Standard sollten die aktuell supporteten Versionen sein (also 20.5 / 20.4) .



Kleines Fettnäpfchen.   

Wie wäre es damit?
LOCAL Versi { Nicht vergessen wenn man keine Globale Variable wünscht. }
LOCAL Doppel-Wumms { 'Neues Modewort' Nicht vergessen wenn man keine Globale Variable wünscht. }
Am Anfang des Macros
INQ_ENV 0
  LET Versi (INQ 2)
  IF ((Versi < 16) and (Versi > 10)) { Habe irgendwo gelesen, dass POINTER erst ab v11 richtig arbeitet. }
    LET Doppel-Wumms 'ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ 2) END'
  ELSE_IF (Versi > 16)
LET Doppel-Wumms 'ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ 332) END'
  ELSE 
    BEEP
DISPLAY ('Deine ME10 ist Version '+Versi+' da sollte die undokumentierte Funktion POINTER eigentlich nicht funktionieren.') 
DISPLAY 'Du kannst aber gerne mal probieren. Gut wäre ein Backup deiner Zeichnung :-). Abbruch ESC ; weiter ENTER'
    LET Doppel-Wumms 'ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ 2) END'
  END_IF

{ rem  So jetzt 2 Möglichkeiten zum Auslösen des Strings 'Doppel-Wumms' anstelle von Wolfgangs 'ADD_ELEM_INFO "this_element_will_be_deleted usw.
-Im Macro, aber das ist auch wieder Versionsabhängig:   
  EXECUTE_STRING Doppel-Wumms        Ach, hätte man damals doch alle Versionen die "Helps" gespeichert
- oder Zusatzmacro, wobei man prüfen sollte ob es nicht schon vorhanden ist ist ;-) LIST_MACRO_NAMES ALL  
DEFINE Execute
  PARAMETER Statement
  LET Statement (VAL Statement)
  Statement
END_DEFINE
Aufruf im Kill-macro
Execute Doppel-Wumms
Habs jetzt leider nicht testen können, aber ich lese es ja denn 

------------------
Gruss Friedhelm

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

der_Wolfgang
Ehrenmitglied
Tastenhauer


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

Beiträge: 1988
Registriert: 3.20.

● PE6+8@home
● W10 Pro Build19044.2006
● Drafting V17~V20.5.0
● Modeling V17~V20.5.0
● @Scirotec201804

erstellt am: 23. Okt. 2022 11:19    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 uger 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von friedhelm at work:
  LET Doppel-Wumms 'ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ 2) END'
  EXECUTE_STRING Doppel-Wumms


Erst nen String zusammen bauen und den dann über eine string evaluation auszuführen ist (nicht nur performance technisch) arg Öööörggss..

Variante:

Code:
LOCAL Versi
LOCAL GlobalPtrNo
INQ_ENV 0 LET Versi (INQ 2)

LET GlobalPtrNo 0
IF (Versi > 10) LET GlobalPtrNo 2  END_IF
IF (Versi > 16) LET GlobalPtrNo 332 END_IF

{ vor der loop }
IF (GlobalPtrNo == 0) exit confirm  { upppss } END_IF

{ in der loop }
ADD_ELEM_INFO "this_element_will_be_deleted_in_few_milliseconds" GLOBAL POINTER (INQ GlobalPtrNo) END



Aufmerksame Leser:Innen der Dokumentation mögen nun einwenden das (INQ 2) ja eine Number ist und (INQ 332) ein String. Dem Select Global Pointer ist das aber egal, der kann (AFAIR) beides.  Macht man andere Dinge mit dem Pointer muss man vielleicht einmal mehr nachdenken.

------------------
Firefox ESRJava Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en)NotePad++BuFDi

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

r.hoffmann
Mitglied
Techniker


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

Beiträge: 127
Registriert: 07.12.2006

OSD 13.2 20.4

erstellt am: 23. Okt. 2022 20: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 uger 10 Unities + Antwort hilfreich

Hier noch einmal die bereinigte Version mit Wahl, ob protokolliert werden soll,
einer eindeutigen Info für ADD_ELEM_INFO
und abhängig von der Version wird POINTER 2 bzw. 322 verwendet.

{#########################################################################}
{### Datei eva_dsc.mac                                                ###}
{### Aus Zeichnungen automatisch Elemente löschen                      ###}
{### die einen Mindestwert haben oder unterschreiten                  ###}
{###                                                                  ###}
{### Erstelldatum:    12.10.2022                                      ###}
{### (c) 2022 by E.V.A. Robert Hoffmann                                ###}
{###                                                                  ###}
{### Änderungsdatum:  12.10.2022                                      ###}
{### Art der Änderung: Neuerstellung                                  ###}
{###                                                                  ###}
{### Änderungsdatum:  23.10.2022                                      ###}
{### Art der Änderung: Versionsabfrage und Wahl ob Protokoll          ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Änderungsdatum:                                                  ###}
{### Art der Änderung:                                                ###}
{###                                                                  ###}
{### Kürzel _va -> Vorderansicht                                      ###}
{### Kürzel _sa -> Seitenansicht                                      ###}
{### Kürzel _ds -> Draufsicht                                          ###}
{### Kürzel _ut -> Unterteil                                          ###}
{### Kürzel _ot -> Oberteil                                            ###}
{### Kürzel _mt -> Mittelteil                                          ###}
{###                                                                  ###}
{### Zeit:                                                            ###}
{### Erforderliche Makros:                                            ###}
{### Verzeichnis C:/TEMP muss existieren                              ###}
{#########################################################################}

DEFINE eva_dsc
  LOCAL Ap          LOCAL Apx        LOCAL Apy
  LOCAL Ep          LOCAL Epx        LOCAL Epy
  LOCAL Radius
  LOCAL Anzahl
  LOCAL Laenge
  LOCAL bearbeitet
  LOCAL Fehler 
  LOCAL Info_eindeutig
  LOCAL Versi
  LOCAL GlobalPtrNo
  LOCAL Withprotocol

  LET Withprotocol 0 {### 1=Protokoll wird geschrieben, 0=Protokoll wird nicht geschrieben ###}

  LET GlobalPtrNo 0 {### Pointer wird nicht unterstützt ###}
  INQ_ENV 0 LET Versi (INQ 2)
  IF (Versi > 10) LET GlobalPtrNo 2 END_IF
  IF (Versi > 16) LET GlobalPtrNo 332 END_IF
  IF (GlobalPtrNo = 0) display ('POINTER wird nicht unterstuetzt, Abbruch mit ESC, weiter mit OK') END_IF

  IF (Withprotocol =1)
    store all del_old 'c:/temp/sicherung.mi'
    OPEN_OUTFILE 1 DEL_OLD ('c:/temp/eva_dsc.txt')
    WRITE_FILE 1 ('eva_dsc')
  END_IF

  LET bearbeitet 0
  INQ_SELECTED_ELEM SELECT GLOBAL GEO ALL CONFIRM END
  LET Anzahl (INQ 14)

  IF (Withprotocol =1)
    WRITE_FILE 1 ('Anzahl: ' + (STR (Anzahl)))
  END_IF

  LET Info_eindeutig ('eva_dsc_info'+DATE)

  LOOP
    LET Fehler 0
    EXIT_IF (INQ 14=0)
    IF  (INQ 403=CIRCLE)
      LET Radius (INQ 3)
      LET Ap (INQ 101)
      LET Apx (X_OF Ap)
      LET Apy (Y_OF Ap)
{############# anpassen #############################}
      IF (Radius <= 5)
{############# anpassen Ende ########################}
        LET bearbeitet (bearbeitet+1)
        ADD_ELEM_INFO Info_eindeutig GLOBAL POINTER (INQ GlobalPtrNo) END
        IF (Withprotocol =1)
          WRITE_FILE 1 (' ')
          WRITE_FILE 1 ('Radius '+(STR (Radius)))
          WRITE_FILE 1 ('Mitte '+(STR (Ap)))
          WRITE_FILE 1 ('CIRCLE ' +(STR (Apx)) +',' +(STR (Apy))  +' ' +(STR (Radius)) +' END')
        END_IF
      END_IF
    ELSE_IF (INQ 403=LINE)
      LET Ap (INQ 101)      LET Apx (X_OF Ap)    LET Apy (Y_OF Ap)   
      LET Ep (INQ 102)      LET Epx (X_OF Ep)    LET Epy (Y_OF Ep)
      LET Laenge (LEN(Ep-Ap))
{############# anpassen #############################}
      IF (ABS (Laenge) <= 1)
{############# anpassen Ende ########################}
        LET bearbeitet (bearbeitet+1)
        ADD_ELEM_INFO Info_eindeutig GLOBAL POINTER (INQ GlobalPtrNo) END
        IF (Withprotocol =1)
          WRITE_FILE 1 (' ')
          WRITE_FILE 1 ('Anfangspunkt '+(STR (Ap)))
          WRITE_FILE 1 ('Endpunkt '+(STR (Ep)))
          WRITE_FILE 1 ('Laenge '+(STR (Laenge)))
          WRITE_FILE 1 ('LINE ' +(STR (Ap)) +' ' +(STR (Ep))  +' END')
        END_IF
      END_IF
{
    ELSE
      LET Fehler 1
      IF (Fehler = 1)
      END_IF
}
    END_IF
    INQ_NEXT_ELEM
    EXIT_IF (INQ 403= END)
  END_LOOP

  DELETE GLOBAL INFOS Info_eindeutig END

  IF (Withprotocol =1)
    CLOSE_FILE 1
  END_IF

  DISPLAY (STR (bearbeitet) + ' von ' + STR (Anzahl) + ' geloescht')
END_DEFINE

------------------
Homepage: www.me10-makros.de

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

stere0
Mitglied



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

Beiträge: 39
Registriert: 29.11.2012

Win 10
V20

erstellt am: 25. Okt. 2022 09: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 uger 10 Unities + Antwort hilfreich

Sieht gut aus, danke euch zweien vieren!
Das hätte ich nicht hinbekommen.
Es werden zwar komischerweise nicht immer alle Elemente gelöscht, obwohl sie unter die Bedingungen fallen, aber die Menge an Elementen hält sich in Grenzen.

Habe mir jetzt noch zwei Anpassungen gemacht.
Zum einen werden die Größenangaben, die bis jetzt im Makro fix hinterlegt sind, beim Aufruf abgefragt.
Und ich habe noch eine Boxauswahl hinzugefügt um ggf. auch nur gewisse Bereiche entsprechend zu bereinigen.

Code hinzu unterhalb der Variablen deklarierung

Code:
  LOCAL L_input
  LOCAL R_input
  LOCAL P1
  LOCAL P2

  READ NUMBER 'Radius eingeben bis zu dem geloescht wird' R_input
  READ NUMBER 'Laenge eingeben bis zu der geloescht wird' L_input

  READ PNT 'Eckpunkt oben links des Rahmens waehlen' P1
  READ PNT 'gegenueberliegenden Eckpunkt des Rahmens waehlen' RUBBER_BOX P1 P2



BOX hinzu anstatt ALL bei der Geometrieauswahl

Code:
  LET bearbeitet 0
  INQ_SELECTED_ELEM SELECT GLOBAL GEO BOX P1 P2 CONFIRM END
  LET Anzahl (INQ 14)

Fixe Abmessungen durch Variablen ersetzt

Code:
IF (Radius <= R_input)
...
IF (ABS (Laenge) <= L_input)


--Edit--
Ups, hab noch vergessen die R_input und L_input mit aufzuführen.
ist jetzt im ersten Codeblock mit drin...

--Edit 2--
Musste nach Hinweis feststellen das ich doch glatt zwei Leute vergessen habe die mitgeholfen haben 
Behoben... 

[Diese Nachricht wurde von stere0 am 25. Okt. 2022 editiert.]

[Diese Nachricht wurde von stere0 am 27. Okt. 2022 editiert.]

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)2022 CAD.de | Impressum | Datenschutz