Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Summarry-Info Prüfen

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:  Summarry-Info Prüfen (701 mal gelesen)
Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 09. Mrz. 2009 11:14    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 an Alle,

ich hab mal wieder ein kleines Problem in Lisp.

(defun c:John (oben unten)
  (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  (setq db (vla-get-Database doc))
  (setq si (vla-get-SummaryInfo db))
  (vla-AddCustomInfo si "NEB-Bezeichnung oben" oben)
  (vla-AddCustomInfo si "NEB-Bezeichnung unten" unten)
  (vlax-release-object si)
  (vlax-release-object db)
  (vlax-release-object doc)
)

Die oben stehnden Programmzeilen funktionieren einwandfrei. Nur wenn es "NEB-Bezeichnung oben" und "NEB-Bezeichnung unten" schon gibt, dann werden die beiden nochmal angelegt. Gibt es eine Möglichkeit zu prüfen, ob es die Beiden schon gibt und wenn ja daß dann die alten werte überschrieben werden? Ich kenn mich in Lisp nicht gut aus.
Kann mir jemand helfen.

Danke im Vorraus

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Mrz. 2009 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 Theo37 10 Unities + Antwort hilfreich

Hi,

naja, aber dass hast du doch schon mal hingekriegt.
Für deine Zwecke solltest du dir die Methoden GetCustomByKey zum Überprüfen und SetCustomByKey zum Setzen einer vorhandenen Eigenschaft ansehen.


Gruß
CADchup

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

[Diese Nachricht wurde von CADchup am 09. Mrz. 2009 editiert.]

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 09. Mrz. 2009 11: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

Hallo CADchup,

kann ich "(vla-GetCustomByKey si "NEB-Bezeichnung oben" 'value3)"
aufrufen ohne daß ich eine Fehlermeldung bekomme, wenn "NEB-Bezeichnung oben" noch nicht vorhanden ist?

Vielen Dank. Theo

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Mrz. 2009 11: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 Theo37 10 Unities + Antwort hilfreich

Ja, zum Besipiel indem du den möglichen Fehler mit

(vl-catch-all-error-p
      (vl-catch-all-apply

abfängst.
Oder, indem du alle Eigenschaften erstmal ausliest und prüfst, ob deine schon dabei ist. Das kann man in einer Schleife mit NumCustomInfo und GetCustomByIndex machen.


Gruß
CADchup

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

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 09. Mrz. 2009 14: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

Hallo CADchup,

ich habe mich entschlossen den Fehler abzu fangen.
Und habe dazu folgende Zeilen geschrieben:

(defun c:John ()
  (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
  (setq db (vla-get-Database doc))
  (setq si (vla-get-SummaryInfo db))
  (setq
    errobj (vl-catch-all-apply
    '(vla-GetCustomByKey si "NEB-Bezeichnung oben" 'value3)
  )
  )

  (if (= errobj NIL)
    (vla-GetCustomByKey si "NEB-Bezeichnung oben" "TIC")
    (vla-AddCustomInfo si "NEB-Bezeichnung oben" "TIC")
  )
  (vlax-release-object si)
  (vlax-release-object db)
  (vlax-release-object doc)
)

Bewirkt leider gar nichts, bekomme immer noch die Fehlermeldung, daß der Key nicht gefunden wurde. Was mache ich falsch?

Gruß, Theo

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 09. Mrz. 2009 14: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 Nur für Theo37 10 Unities + Antwort hilfreich

Hallo Theo,
ich hab da noch was im Netz gefunden, ich denke das ist das was Du brauchst:
http://cadtutor.org/forum/showthread.php?t=18859#5

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 09. Mrz. 2009 14:51    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 Theo37 10 Unities + Antwort hilfreich

(if (= errobj NIL)
bringt's nicht, weil's auch im Fehlerfall nicht nil sein würde. Außerdem macht man (if (= irgendwas nil) sowieso nicht. (if irgendwas reicht hier doch vollkommen.  

Jörns Link zeigt, wie's geht und kondensiert sieht's so aus:

Code:

(if
  (not
    (vl-catch-all-error-p
      (vl-catch-all-apply
        'vla-GetCustomByKey
        (list si "NEB-Bezeichnung oben" 'value3)
      )
    )
  )
  (vla-SetCustomByKey si "NEB-Bezeichnung oben" "Warschonda")
  (vla-AddCustomInfo si "NEB-Bezeichnung oben" "Nochnichtda")
)


Gruß
CADchup

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

[Diese Nachricht wurde von CADchup am 09. Mrz. 2009 editiert.]

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

Theo37
Mitglied
Techniker


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

Beiträge: 423
Registriert: 08.10.2008

erstellt am: 09. Mrz. 2009 17: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

Danke Euch Beiden,

ich weiß nicht warum, aber es funktioniert.
Die Auto-Cad Hilfe ist bei solchen Dingen keine große Hilfe.

Gruß, Theo

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



Projektsteuerung (w/m/d) Genehmigungen für Netzausbauprojekte Stromnetz

Wir sind 50Hertz ? einer der vier Übertragungs­netz­betreiber (ÜNB) in Deutschland. Zusammen mit dem belgischen Stromnetz­betreiber Elia (Brüssel) bilden wir die inter­national tätige Elia Group. Bei 50Hertz arbeiten über 1.800 Menschen daran, dass Strom über große Entfernungen jederzeit zuverlässig, verlust­arm und optimal gesteuert fließt. Als ÜNB übernehmen wir in gesell­schaftlicher, technischer ...

Anzeige ansehenWeitere: Recht
CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 10. Mrz. 2009 08: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 Theo37 10 Unities + Antwort hilfreich

Hi,

wieso nicht?
Schau dir die Kapitel "Catching Errors and Continuing Program Execution" und "Handling Errors Returned by ActiveX Methods" in der Entwickler-Doku an. Da ist es verständlich beschrieben.


Gruß
CADchup

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

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz