Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Audwahl von Dupliaktblöcken

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
  
PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
Autor Thema:  Audwahl von Dupliaktblöcken (339 / mal gelesen)
Rivella
Mitglied
--


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

Beiträge: 146
Registriert: 26.01.2017

Windows 10
AutoCAD2024
Inventor2024 Prof.

erstellt am: 19. Okt. 2024 19:29    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 CAD Gemeinde

Problembeschreibung:

In einem AutoCAD-LISP-Skript zur Suche nach Duplikaten von Blöcken mit spezifischen Attributen (X und Y) wird der ursprünglich vorhandene Block, der die gleichen Attributwerte aufweist, nicht als Duplikat erkannt. Stattdessen werden nur die kopierten Blöcke berücksichtigt. Das Skript fügt jedoch den gewünschten Block "ACHTUNG" nur bei den kopierten Duplikaten hinzu und lässt den ursprünglichen Block ohne Kennzeichnung.

Zusätzliche Anforderungen:
- Der Block "ACHTUNG" sollte auch für den ersten, ursprünglich vorhandenen Block eingefügt werden, wenn dieser ein Duplikat darstellt.

Mir ist bewusst, dass dies eine sehr komplexe Angelegenheit ist und auch schweirig ist zu Beschreiben. Doch vielleicht ist einer unter Euch, der sich mit lsp gut auskennt und das Problem für Ihn ein Klacks ist.

Ich bin für jede Unterstützung Dankbar. Auch gegen ein Entgelt, wenn wir das hinkriegen.

------------------
Mfg Rivella

[Diese Nachricht wurde von Rivella am 19. Okt. 2024 editiert.]

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2812
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Bricscad V11-V23 pro
Plateia, Canalis
Visual Basic

erstellt am: 20. Okt. 2024 11:25    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 Rivella 10 Unities + Antwort hilfreich

Hallo Rivella,
Um was für Blöcke handelt es sich hier? Normale oder dynamische? Beispielzeichnung?
Zitat:
Mir ist bewusst, dass dies eine sehr komplexe Angelegenheit ist und auch schweirig ist zu Beschreiben. Doch vielleicht ist einer unter Euch, der sich mit lsp gut auskennt und das Problem für Ihn ein Klacks ist.

Dazu müßtest Du auch das Lisp hier einstellen.

Grüße
Klaus 

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

Rivella
Mitglied
--


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

Beiträge: 146
Registriert: 26.01.2017

Windows 10
AutoCAD2024
Inventor2024 Prof.

erstellt am: 20. Okt. 2024 14: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 Klak,

vielen Dank für Deine Antwort.

Aktuell kann ich keine Daten hochladen, da es sich um Kundendaten handelt, die ich nicht in einem öffentlichen Forum teilen kann.

Das Hauptproblem liegt in der Erkennung des Ursprungblocks. Ich habe es geschafft, die Duplikate in den Attributen zu identifizieren. Allerdings wird der Basisblock nicht als Duplikat erkannt. Wenn ich den Basisblock lösche, wird der kopierte Block ebenfalls nicht als Duplikat erkannt.

Ich habe bereits versucht, einen Rücksprung oder eine Schleife in das Skript einzubauen oder die gesamte Prüfung rückwärts durchzuführen, aber ohne Erfolg. Der Basisblock wird nie als Duplikat erkannt. Das scheint auch logisch, denn bei der Prüfung des ersten Blocks kennt das System die Inhalte der anderen Blöcke noch nicht.

Vermutlich muss ich es dabei belassen und stattdessen nach den Attributen suchen, die gleich sind, und mir diese dann als aktiv anzeigen lassen.

------------------
Mfg Rivella

[Diese Nachricht wurde von Rivella am 20. Okt. 2024 editiert.]

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2812
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Bricscad V11-V23 pro
Plateia, Canalis
Visual Basic

erstellt am: 20. Okt. 2024 16: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 Rivella 10 Unities + Antwort hilfreich

Hallo Rivella,
Ohne das Programm zu kennen ist das schwierig zu beurteilen was Du überhaupt machst.
Zum anderen solltest Du auch einmal klar schreiben was du  überhaupt untersuchen willst (siehe oben normale oder dynamische Blöcke).
Und dann gleich noch die nächste Frage: Was möchtest du vergleichen Blöcke oder Blockreferenzen? Wie entstehen die Kopien?
Du schreibst von Basisblock. Woher stammt der? Ist das wirkliche eine Blockdefinition oder die erste gefundene Blockreferenz?
Im einfachsten Fall hast Du eine Kontrollvariable, die beim ersten Finden eines kopierten Blockes (mit gleichen Attributen) auf True gesetzt wird und auch an der Basisblock (- Referenz) den Achtung-Block setzt. Beim zweiten Finden des Basisblockes wird die Kontrollvariable angesehen und weil schon true nur an der Kopie der Hinweisblock gesetzt.

Aber wie schon geschrieben, ist jetzt einfach mal ins Blaue geraten :P

Grüße
Klaus 

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

Rivella
Mitglied
--


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

Beiträge: 146
Registriert: 26.01.2017

Windows 10
AutoCAD2024
Inventor2024 Prof.

erstellt am: 20. Okt. 2024 20: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

Ich möchte mein Problem etwas genauer erläutern:

- In meiner Zeichnung verwende ich mehrere dynamische Blöcke (1-4), die alle dieselben Attribute (A-Z) enthalten.
- Diese Blöcke ordne ich in der Zeichnung ähnlich einer Konzertbestuhlung an.
- Jeder Block besitzt unterschiedliche Attributwerte, darunter eine Sektorbezeichnung und eine Nummer, die nach Zeilen und Spalten aufgeschlüsselt sind.
- Ein Beispiel für diese Werte wäre: Sektor-Nummer (F-A005), wobei F für den Sektor, A für die Zeile und 005 für die Spalte steht.
- Es gibt noch weitere Attribute, aber diese sind für die Duplikatsuche nicht relevant.
- Ziel ist es, die Zeichnung nach Duplikaten zu durchsuchen, die möglicherweise durch menschliche Fehler entstanden sind. Diese Duplikate dürfen nie vorkommen.
- Das bedeutet, ich suche nach Blöcken, bei denen die Kombination aus Sektor und Nummer mehrfach vorhanden ist. Wenn ein Duplikat gefunden wird, soll ein Block namens „Achtung“ am Basispunkt des dynamischen Blocks mit den gleichen Attributen eingefügt werden.
- Der „Achtung“-Block dient als visuelle Markierung, damit ich von weitem erkenne, wo es Duplikate gibt.
- In der Zeichnung gibt es auch andere Blöcke ohne die relevanten Attribute (Sektor und Nummer). Diese sollen bei der Überprüfung ignoriert werden.
- Aktuell funktioniert die Duplikatsuche gut, und der „Achtung“-Block wird korrekt an den dynamischen Block angehängt.
- Das Problem ist jedoch, dass der erste platzierte dynamische Block z.B Block3 bei der Überprüfung nicht als Duplikat erkannt wird. Wenn ich z. B. einen Block 10-mal kopiere und alle die gleichen Attributwerte (wie F-A005) haben, werden nur 9 Duplikate erkannt. Der ursprünglich gesetzte Block wird nicht als Duplikat angezeigt.
- Zudem füge ich den Block Achtung auf einem entsprechenden Layer (Duplikate) ein.
- Ich habe bereits auch schon eine Schleife eingebaut, mit der Hoffnung, dass der erste Block erkannt wird. Leider ist dem jedoch nicht so.

Die lisp Datei sieht inetwa so aus:

(defun replace-umlauts (text)
  ;; Ersetze Umlaute durch ihre ASCII-Äquivalente
  (setq text (vl-string-subst "ae" "ä" text))
  (setq text (vl-string-subst "oe" "ö" text))
  (setq text (vl-string-subst "ue" "ü" text))
  (setq text (vl-string-subst "Ae" "Ä" text))
  (setq text (vl-string-subst "Oe" "Ö" text))
  (setq text (vl-string-subst "Ue" "Ü" text))
  (setq text (vl-string-subst "ss" "ß" text))
  text  ; Rückgabe des umgewandelten Textes
)

(defun ensure-layer-active (layer-name)
  ;; Überprüfen und aktivieren des Layers
  (if (tblobjname "LAYER" layer-name)  ; Überprüfen, ob der Layer existiert
    (progn
      ;; Setze den Layer "Duplikate" aktiv
      (command "_.layer" "SE" layer-name "")
      ;; Tau den Layer auf
      (command "_.layer" "T" layer-name "")
      ;; Entsperren des Layers
      (command "_.layer" "EN" layer-name "")
    )
    (progn
      ;; Erstelle den Layer, falls nicht vorhanden
      (command "_.layer" "M" layer-name "")
      ;; Setze den Layer
      (command "_.layer" "SE" layer-name "")
    )
  )
)

(defun c:SUCHESEKTORNUMMER ()
  ;; Suche nach Blöcken mit den Attributen SEKTOR und NUMMER
  (setq ss (ssget "X" '((0 . "INSERT"))))  ; Alle Blöcke suchen
  (if ss
    (progn
      (setq count (sslength ss))
      (setq found-blocks '())  ; Liste für die gefundenen Blöcke
      (setq feld-grab-kombi '())  ; Liste für die kombinierten Werte
      (setq valid-block-names '("BLOCK1" "Block2" "Block3" "Block4"))  ; Gültige Blocknamen

      ;; Phase 1: Durchlaufe alle Blockreferenzen und speichere die Duplikate
      (repeat count
        (setq ent (ssname ss (setq count (1- count))))
        ;; Wandeln des Block-Handles in ein VLA-Objekt um
        (setq blockObj (vlax-ename->vla-object ent))
        ;; Hole die Attribute des Blocks
        (setq attlist (vlax-invoke blockObj 'GetAttributes))

        ;; Initialisiere Variablen für die Attributwerte
        (setq sektor-wert nil)
        (setq nummer-wert nil)

        ;; Durchsuche die Attributdaten nach den Tags SEKTOR und NUMMER
        (foreach att attlist
          (if (equal (strcase (vla-get-tagstring att)) "SEKTOR")  ; Suche nach SEKTOR
            (setq sektor-wert (vla-get-textstring att))  ; Wert des Attributs SEKTOR
          )
          (if (equal (strcase (vla-get-tagstring att)) "NUMMER")  ; Suche nach NUMMER
            (setq grabnummer-wert (vla-get-textstring att))  ; Wert des Attributs NUMMER
          )
        )

        ;; Kombiniere SEKTOR und NUMMER
        (if (and sektor-wert nummer-wert)
          (setq kombi (strcat (strcase sektor-wert) "-" (strcase nummer-wert)))
        )

        ;; Speichern der gefundenen Kombinationen, wenn der Blockname gültig ist
        (if (and kombi
                (member (strcase (vla-get-effectivename blockObj)) valid-block-names))  ; Nur gültige Blocknamen
          (progn
            ;; Überprüfen, ob die Kombination bereits existiert
            (if (member kombi sektor-nummer-kombi)
              (progn
                ;; Duplikat gefunden - Block aktivieren
                (setq found-blocks (cons ent found-blocks))
              )
              ;; Wenn kein Duplikat, zur Liste hinzufügen
              (setq sektor-nummer-kombi (cons kombi sektor-nummer-kombi))
            )
          )
        )
      )

      ;; ACHTUNG Block für die gefundenen Duplikate einfügen
      (if found-blocks
        (progn
          (ensure-layer-active "Duplikate")  ; Layer sicherstellen
          (foreach block found-blocks
            ;; Berechne den Einfügepunkt für den ACHTUNG Block
            (setq insert-point (vlax-get (vlax-ename->vla-object block) 'insertionPoint))
            ;; ACHTUNG Block einfügen
            (command "_.insert" "ACHTUNG" insert-point 1 1 0)
          )
        )
      )

      ;; Prüfen auf Ursprungsblock
      (foreach ent ss
        (setq blockObj (vlax-ename->vla-object ent))
        ;; Hole die Attribute des Blocks
        (setq attlist (vlax-invoke blockObj 'GetAttributes))

        ;; Initialisiere Variablen für die Attributwerte
        (setq sektor-wert nil)
        (setq nummer-wert nil)

        ;; Durchsuche die Attributdaten nach den Tags SEKTOR und NUMMER
        (foreach att attlist
          (if (equal (strcase (vla-get-tagstring att)) "SEKTOR")  ; Suche nach SEKTOR
            (setq feld-wert (vla-get-textstring att))  ; Wert des Attributs SEKTOR
          )
          (if (equal (strcase (vla-get-tagstring att)) "NUMMER")  ; Suche nach NUMMER
            (setq grabnummer-wert (vla-get-textstring att))  ; Wert des Attributs NUMMER
          )
        )

        ;; Kombiniere SEKTOR und NUMMER
        (if (and sektor-wert nummer-wert)
          (setq kombi (strcat (strcase sektor-wert) "-" (strcase nummer-wert)))
        )

        ;; Überprüfen, ob die Kombination in der Liste der gefundenen Blöcke ist
        (if (and kombi (member kombi sektor-nummer-kombi))
          (progn
            ;; Ursprungsblock als Duplikat erkennen
            (setq insert-point (vlax-get (vlax-ename->vla-object ent) 'insertionPoint))
            ;; ACHTUNG Block einfügen
            (command "_.insert" "ACHTUNG" insert-point 1 1 0)
          )
        )
      )

      ;; Ergebnisanzeige
      (if found-blocks
        (princ (strcat "\nDuplikate gefunden: " (itoa (length found-blocks))))
      )
      (if (null found-blocks)
        (princ "\nKeine Duplikate gefunden.")
      )
    )
    (princ "\nKeine Blöcke mit SEKTOR und NUMMER gefunden.")
  )
  (princ)
)

------------------
Mfg Rivella

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

archtools
Mitglied



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

Beiträge: 970
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 20. Okt. 2024 21: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 Rivella 10 Unities + Antwort hilfreich

Das ist zwar ein ziemlich wirrer Code, aber um zu zeigen, wie man das eleganter macht, hier ein paar Hinweise.

Statt
(setq ss (ssget "X" '((0 . "INSERT"))))
mit nachfolgender umständlicher Prüfung auf den Blocknamen verwendest Du den SSGET Aufruf besser so:
(setq ss (ssget "X" '((0 . "INSERT") (2 . "BLOCK1,Block2,Block3,Block4")))
Und dann wird die ganze Sache extrem viel einfacher, wenn Du mit einer Liste von Entities arbeitest, anstatt mit einem Auswahlsatz. Die Umeandlung geschieht hiermit:

Code:

(defun ss->list (ss / i l)
  (if ss
    (repeat (setq i (sslength ss))
      (setq l (cons (ssname ss (setq i (1- i))) l))
    )
  )
)


Die Liste der zu prüfenden Blockreferenzen kriegst Du also so:

(setq ss (ss->list (ssget "X" '((0 . "INSERT") (2 . "BLOCK1,Block2,Block3,Block4"))))

Nun schreibst Du eine Funktion, die Dir für eine einzige (!) Blockreferenz die Attribute SEKTOR und NUMMER mit dem jeweiligen Wert ausgibt und den Entitynamen. Diese Funktion wendest Du mit MAPCAR auf Deine Liste der Blockreferenzen an, und kriegst als Ergebnis eine Liste aus Listen, nämlich für jede Blockreferenz (<ENAME> ("SEKTOR" <sektorwert>) ("NUMMER" <nummerwert>:nozwinker
Diese Liste kannst Du jetzt extrem einfach nach Duplikaten durchsuchen, und diese wieder in einer eigenen Liste sammeln. Diese Liste gehst Du dann durch, und ersetzt jeweils den Block durch den ACHTUNG-Block.

Merksatz: Lispprogramme schreibt man so, dass man sich ein Problem in kleine, allgemein wiederverwendbare Problemlösungen aufteilt. Selten ist dabei eine Funktionsdefinition länger als 5 oder 6 Zeilen. Das eigentliche Programm wird dadurch sehr viel kürzer und einfacher, und v.a. sehr einfach lesbar und damit sehr einfach zu debuggen.

Übrigens: bei einer Blockreferenz kannst Du einfach den DXF-Code 2 ndern, und dann verweist diese referenz auf eine andere Blockdefinition. Damit ist das Insert ausgetauscht. Aber Vorsicht: die Attribute bleiben auch dabei erhalten.

Hier eine allgemein wiederverwendbare Funktion zur Änderung eines DXF-Codes eines Entitys. Für das Ändern der Referenz auf die Blockdefinition "ACHTUNG" brauchst Du nur das zu verwenden: (SSMODENT <block-ename> 2 "ACHTUNG")

Code:

(defun ssmodent (ename dxf val)
  (entmod (at-subst
            (cons dxf val)
            (entget ename)
          )
  )
)

;; Hilfsfunktion AT-SUBST zur einfachen Ersetzung/Ergänzung
;; eines ASSOCs in einer ASSOC-Liste
;; (AT-SUBST '(B 123) '((A 1) (B 2) (C 3))))
;; ergibt ((A 1) (B 123) (C 3))
(defun at-subst (newpair inlist / temp)
  (cond
    ((not inlist)
          (list newpair)  ; inlist existiert nicht
    )
    ((setq temp (assoc (car newpair) inlist))
          (subst newpair temp inlist)          ; existiert schon, ersetzen
    )
    ( 'T
      (reverse (cons newpair (reverse inlist)))  ; hinten dran
    )
  )
)


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

Rivella
Mitglied
--


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

Beiträge: 146
Registriert: 26.01.2017

Windows 10
AutoCAD2024
Inventor2024 Prof.

erstellt am: 21. Okt. 2024 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

Hallo archtools,

vielen Dank für deine spannenden und hilfreichen Anregungen! Ich möchte einen kleinen Hinweis ergänzen: Es geht nicht darum, den Duplikatblock durch den Block „Achtung“ zu ersetzen, sondern lediglich den Duplikatblock mit dem „Achtung“-Block zu markieren.
In der Zeichnung werden je nach Projekt zwischen 1.000 und 2.000 Blöcke vorhanden sein, die auf Duplikate geprüft werden müssen. Stell dir einen riesigen Konzertsaal vor, in dem jeder Stuhl (Block) diese Attribute besitzt, die überprüft werden sollen.
Ich werde mir deinen Code gerne genauer ansehen und dir bei Erfolg Rückmeldung geben.
Vermutlich kann ich meinen Code noch kürzen. Dise länge hat sich durch den Versuch den Basisblock als Duplikat zu finden ergeben. X Schleifen und Rücksprünge.

Danke schon mals viel mal.

------------------
Mfg Rivella

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

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


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

Beiträge: 3074
Registriert: 26.08.2002

ACAD R11 - 2022
(Plant3D)
AVIS
ACAD LT 2013- 2021
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 10 / 64 Bit
Xeon CPU 3.5GHz
16GB Ram
NVIDIA Quadro P2000
3x Dell TV100 88P Monitore

erstellt am: 25. Okt. 2024 14: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 Rivella 10 Unities + Antwort hilfreich

Hy Rivella,

mhh okay also sowas wie redlining....

aber wenn es "nur " drum geht doppelte Werte zu ändern , warum dann nicht einmal alles in Excel und zurück ?
oder gleich nen Block wo deine Kennung automatisch durch "Nummeriert"

NWE cw

------------------
Also ich finde Unities gut ... und andere sicher auch
------------------------------------------------
cadwomen™
Plant ist nur die Spitze des Berges der da treibt ?

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: 1458
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 25. Okt. 2024 15: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 Rivella 10 Unities + Antwort hilfreich

Hallo Rivella,
wie schon angesprochen ... mach Stück für Stück.

hier mal etwas LISP.
Die Funktion gibt dir von einem Block die Attribute und auch die dynamischen Parameter als Liste zurück.
Diese Daten kannst du auswerten und mit anderen vergleichen.
Du kannst auch vorher Daten die du nicht vergleichen möchtest aus der Liste löschen usw. usw.

Vielleicht hilft der Ansatz ja weiter.
Viel Spaß damit 

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

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

VMichl
Mitglied



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

Beiträge: 224
Registriert: 04.01.2001

AutoCAD, LT, Inventor, Revit, Map, LISP...
Firma: ARKANCE (CAD Studio)

erstellt am: 28. Okt. 2024 15:41    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 Rivella 10 Unities + Antwort hilfreich

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