Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Existenz von Attributen

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:  Existenz von Attributen (997 mal gelesen)
Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 05. Apr. 2013 15:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,

wie kann ich prüfen, ob in einer Zeichnung Attribute vorhanden sind?
Die Attribute selbst sind egal, es geht nur um deren Existenz.

Vielen Dank schon mal.

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: 05. Apr. 2013 17: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 Musicus 10 Unities + Antwort hilfreich

Hallo Musicus,
als Ansatz 
Code:
(defun c:attributes? (/ return)
  (vl-load-com)
  (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
    (vlax-for item block
      (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item)))
(setq return t)
      )
    )
  )
  (if return
    (alert "Attribut(e) gefunden.")
  )
  (prin1)
)
Grüße, 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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 08. Apr. 2013 17: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 Henning,

vielen Dank für den Ansatz.

Jetzt übersteigt ActiveX meine Lisp-Kenntnisse doch etwas, aber ich denke ich weiß, was das Progrämmchen im Inneren tut.
Es funktioniert auch wunderbar.

Ich brauche jetzt aber keine Meldung als Ausgabe, sondern es soll natürlich ein Befehl ausgeführt werden. Wenn keine Attribute drin sind, darf der Befehl nicht ausgeführt werden.

Ich dachte mir, packst du statt (alert ...) einfach das Stück Code rein, was du schon hast, und fertig.
Gedacht wahrscheinlich nicht schlecht, aber es tut nicht   

Hier mein Versuch:

Code:
(defun c:attributes? (/ return AWS)
  (vl-load-com)
  (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
    (vlax-for item block
      (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item)))
(setq return t)
      )
    )
  )
  (if return
    (command "_BURST" "alle" "")(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "")
    (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))
    (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")
  )
)

Vielen Dank nochmal für deine Hilfe und die Geduld mit meinen rudimentären Lisp-Kenntnissen.

[Diese Nachricht wurde von Musicus am 08. Apr. 2013 editiert.]

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 08. Apr. 2013 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 Musicus 10 Unities + Antwort hilfreich

hallo musicus,
Code:

(if return
  (progn
    (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))
    (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")
  )
)

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 08. Apr. 2013 18: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

Danke Marco,

da hätte ich auch selbst drauf kommen können.
Der Syntaxfehler ist jetzt weg.

Nächstes Problem: Anscheinend lässt sich BURST nicht verlispeln.

Als Skript läuft das hier wunderbar, nur eben ohne Abfrage der Attribute.

Code:
burst
alle

(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "")
(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))(command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")


Das hier geht nicht:

Code:
(defun c:attributes? (/ return AWS)
  (vl-load-com)
  (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
    (vlax-for item block
      (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item)))
(setq return t)
      )
    )
  )
  (if return
    (progn
      (command "_BURST" "alle" "")(setq AWS (ssget "_X" '((-4 . "<AND")(0 . "TEXT")(7 . "STANDARD")(-4 . "AND>"))))(command "_erase" AWS "")
      (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))
      (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")
    )
  )
)

BURST ist hier ein unbekannter Befehl.

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 08. Apr. 2013 18:28    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 Musicus 10 Unities + Antwort hilfreich

(command (c:burst))

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 09. Apr. 2013 11:32    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 Marco,

was bewirkt dieser Aufruf?

BURST wird dadurch ausgeführt, braucht aber eine manuelle Objektwahl. Und alles, was danach kommt, wird nicht mehr ausgeführt.

Gruß,
Musicus

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 09. Apr. 2013 12: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 Nur für Musicus 10 Unities + Antwort hilfreich

mein fehler: burst ist eine lisp funktion (zu finden bei den express tools -> burst.lsp), also ohne command aufruf.
du koenntest diese so umschreiben, dass sie einen auswahlsatz entgegen nimmt und die selection zeile rausnehmen.

ich verweise aber mal noch darauf BURST in LISP integrieren

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 09. Apr. 2013 17:44    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

Danke für den Tipp mit iburst, der wird hier gleich zum Einsatz kommen.

iburst läuft jetzt auch ohne Probleme durch, danach geht's allerdings nicht weiter. Im Skript läuft der letzte Teil bisher problemlos.

Code:
(defun c:attributes? (/ return AWS)
  (vl-load-com)
  (vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
    (vlax-for item block
      (if (= :vlax-true (vl-catch-all-apply 'vla-get-hasattributes (list item)))
(setq return t)
      )
    )
  )
  (if return
    (progn
      (sssetfirst nil (ssget "_X" (list (cons 0 "insert")(cons 66 1))))
      (command (c:iBURST))
      (setq AWS (ssget "_X" '((-4 . "<AND")(0 . "HATCH")(8 . "*T-Raumstempel*")(-4 . "AND>"))))
      (command "_HATCHEDIT" AWS "U" "P" "N")(command "_erase" AWS "")
    )
  )
)

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 09. Apr. 2013 17: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 Musicus 10 Unities + Antwort hilfreich

was mir auf die Schnelle auffällt - statt
Code:
(command (c:iBURST))

nur
Code:
(c:iBURST)

------------------
Schöne Grüße
Ernst

www.geopaint.at

[Diese Nachricht wurde von Geos am 09. Apr. 2013 editiert.]

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

Musicus
Mitglied
Staatl. gepr. Techniker


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

Beiträge: 685
Registriert: 26.07.2005

AutoCAD 2018
Linear, CATS
Windows 10

erstellt am: 09. Apr. 2013 17:56    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

Danke, genau das war's.
War eigentlich logisch, nachdem ich die vorherigen Beiträge und das andere Thema gelesen hatte, habe ich aber glatt übersehen.

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