Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  vla-put-Constant

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:  vla-put-Constant (1290 mal gelesen)
WolfgangGutke
Mitglied
Konstrukteur


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

Beiträge: 109
Registriert: 28.09.2004

AutoCAD 2002
AutoCAD 2006
ObjectDCL 2.02

erstellt am: 07. Okt. 2005 11: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

Hallo,

hat jemand eine Ahnung, warum AutschCAD bei der Funktion

(foreach Att (vlax-safearray->list (vlax-variant-value (vla-getAttributes (vlax-ename->vla-object (car (entsel))))))
    (vla-put-Constant Att :vlax-true)
    )

folgende Fehler zurückgibt, wenn ich ein Block mit Attribute wähle??

; Fehler: ActiveX-Server hat einen Fehler zurückgegeben: Typkonflikt

VG
Wolfgang

P.S.: Konnte nirgendwo entwas über vla-put-constant finden

------------------
LISP = Lots of Insane Stupid Parantheses

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

marvin101010
Mitglied
ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)


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

Beiträge: 562
Registriert: 22.01.2003

Pentium 4
Windows XP
Autocad 2002
Autocad 2002LT + Extender
ADT 3.3
ArchiCAD

erstellt am: 07. Okt. 2005 14:22    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 WolfgangGutke 10 Unities + Antwort hilfreich

Hallo....ist Att ein vla-Objekt?

lg
marv

------------------
...so long and thanx for all the fish!

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

Dabrunz
Mitglied



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

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 07. Okt. 2005 14:27    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 WolfgangGutke 10 Unities + Antwort hilfreich

Tag zusammen.

Der kleine aber feine Unterschied zwischen ATTRIB und ATTDEF schlägt hier erbarmungslos zu. COM (oder ActiveX) kennt beide als "AttributeReference" und "Attribute", die Eigenschaft 'Constant' ist aber bei ATTRIBs 'readonly' und kann nur bei ATTDEFs gesetzt werden.

Die Methode getAttributes gibt aber, anders als der Name vermuten ließe, ein Array mit AttributeReferences zurück. Deshalb klappt das nicht mit dem Setzen der Eigenschaft.

Mit (vlax-property-available-p Att'Constant'check-writable) kann im Vorfeld geprüft werden, ob die EIgenschaft geschrieben werden kann oder nicht.

Achim Dabrunz

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

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

WolfgangGutke
Mitglied
Konstrukteur


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

Beiträge: 109
Registriert: 28.09.2004

AutoCAD 2002
AutoCAD 2006
ObjectDCL 2.02

erstellt am: 07. Okt. 2005 20:02    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

Vielen Dank Achim,

war leider durch die Tatsache etwas verwirrt, dass ein vla-put-Invisible auf Anhieb funktioniert, was doch im eigentlichen Sinne (wenn ich mich nicht täusche) genauso auf ein Attributtag "wirkt", wie das vla-put-Constant - oder??

Wenn ich mich täusche, kannst du mir bitte Posten, wie man es mit dem vla-put-Constant richtig macht??

Vielen Dank
Wolfgang

------------------
LISP = Lots of Insane Stupid Parantheses

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 08. Okt. 2005 14:38    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 WolfgangGutke 10 Unities + Antwort hilfreich

Offensichtlich doch noch ein kleiner Strudel im Strom der Erkenntnis...

Es gibt in Acad Blöcke (das ist das Zeugs, was man ggf. wegbereinigen kann) und Blockreferenzen (das ist das, was man ggf. löschen kann). Blockreferenzen hören manchmal auch auf den Namen "Insert".

Auf die ganze Verwirrung, die schon durch die Anwender verursacht wird (es werden ständig diese zwei Dinge verwechselt), setzt Autodesk noch einen drauf: Nirgendwo in AutoCAD hat man es geschafft, die Konsistenz der Nomenklatur noch tiefer zu legen als bei Blöcken und Attributen.

Die Sachverhalte noch mal im einzelnen: Definitionsseitig gibt es Blöcke und Attributsdefinitionen, Verwendungsseitig aber Inserts(Blockreferenzen) und Attribute. getAttributes liefert dir immer die Attribute eines eingefügten, refrenzierten Blocks, aber niemals die Definition - das verwendete (entsel) kann ja sowieso nur Inserts liefern, niemals aber Blockdefinitionen.

Die Eigenschaft Constant kann aber nur einer Attributsdefintion zugewiesen werden - nicht einem Attribut. Wenn du eine Blockdefinition zweimal in die Zeichnung einfügst und unter "Name" einmal den Wert "Hinz" und das zweite Mal "Kunz" verwendet hast, verweigert COM aus gutem Grund die Constant-Einstellung, denn in einem konstanten Attribut steht ja immer das Selbe drin.

Ein Insert besteht aus zwei Teilen: Zum einen ist da die referenzierte Geometrie, die bei jedem Insert gleich ist. Auf der anderen Seite hat man die nichtkonstanten Attribute mit ihren variablen Inhalte. Konstante Attribute sind aber Bestandteil der refenzierten Geometrie - deswegen kriegt man sie ja auch nicht in der entnext-Schleife, mit der man die anderen Attibute auslesen kann. In COM bekommst du mit GetAttributes die nichtkonstanten Attribute einer Blockreferenz, und um die konstanten aus der Blocktabelle auszulesen, musst du GetConstantAttributes verwenden.

Um Achims Kernaussage noch einmal zu verdeutlichen: Konstante Attribute kann man nur vor der Verwendung eines Blocks definieren. Attribute an einem Insert nachträglich in konstante Attribute zu verwandeln, ist so sinn- und aussichtslos wie die Umwandlung eines Rechtecks in einen Kreis.

Ein Tabelle mit der kompletten delirischen Nomenklatur für AutoCAD, VisualLisp, COM und ObjectARX/DBX habe ich mal im VBA-Forum gepostet: suchen.

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 18. Okt. 2005 13:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für WolfgangGutke 10 Unities + Antwort hilfreich

Man könnte sagen: statt konstanter Attribute könnte man auch einzeiliege Texte verwenden - denn diese sind auch konstant. Einziger Unterschied zu Texten: Konstanze reagiert auf geänderte Einstellungen von ATTMODE.

VG, Fred

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 18. Okt. 2005 14:57    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 WolfgangGutke 10 Unities + Antwort hilfreich

Hallo Fred,

auch konstante Attribute haben eine Bezeichnung, welche man im Bedarfsfall klar vergleichen kann. Will man also die Attribute auswerten, handelt man sich mit Texten einen Haufen Arbeit ein.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 19. Okt. 2005 14: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 WolfgangGutke 10 Unities + Antwort hilfreich

Ja, dann muss ich aber - wie Axel so schön schrieb - in die Blockdefinition gehen und dort nach der Attributdefinition suchen. Klar, dann habe ich TagString (zum Vergleichen) und des TextString (mit dem Wert). Durchgängiger fände ich es, könnte man am Insert mit vla-getAttributes nicht nur die variablen Attribute, sondern auch die konstanten "Attribute" herausbekommen. Denn ich kann auch von Attributen, die ich mit vla-getattributes bekomme, die Eigenschaft Constant abfragen.

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 19. Okt. 2005 14:35    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 WolfgangGutke 10 Unities + Antwort hilfreich

ja, das ist richtig. Vom Zeichnungsaufbau her logisch, von der dann Bezeichnung eher irreführund.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 20. Okt. 2005 09: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 Nur für WolfgangGutke 10 Unities + Antwort hilfreich


vlaPutConstant.JPG

 
Hallo Wolfgang,

Zitat:
Original erstellt von WolfgangGutke:

P.S.: Konnte nirgendwo entwas über vla-put-constant finden

in der Anlage ist er Weg um in der AutoCAD-Entwicklerhilfe etwas zu finden. Hier kurz beschrieben:
- Visual LISP-Editor starten
- vla-put-constant in der Visual LISP-Konsole eingeben und markieren
- auf "Aus Symbolsatz ergänzen" klicken
- es öffnet sich das Fenster Apropos-Ergebnisse
- darin vla-put-constant markieren und die Hilfe aufrufen
- es wird die AutoCAD-Entwicklerhilfe gestartet
Weiter kann ich Dir leider nicht helfen, aber vielleicht kommst Du damit ja etwas weiter.

Gruß Bernd

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