| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Insert Befehl gibt generell 0.00 Wert in Attribut (1276 mal gelesen)
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 10. Mrz. 2015 15:42 <-- editieren / zitieren --> Unities abgeben:
Hat jemand eine Ahnung, welche systemvariable dahinter steckt (command "insert" "plushöjd" (getpoint "\nSelect a point") 1 1 0 "12.25") Beispiel mit einem Block, der ein Attribut mit einer Höhenangabe besitzt Mein kollege bekommt halt nur 0.00 angezeigt attdia <0> attreq <1> ...
------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 10. Mrz. 2015 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
vielleicht ist der Block so deffiniert, dass nur gleichmäßige Skalierung zugelassen ist. Dann wird nur EIN Faktor abgefragt (1. "1", das makro gibt für den Drehwinkel 1 (2. "1") ein, und der Wert fürs Attribut 0. Grüsse, 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 |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
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: 10. Mrz. 2015 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 10. Mrz. 2015 19:11 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Das attrib ist schon mit einem vorgabewert 0.00 definiert mich wundert es nur, das bei mir es funktioniert mir ist schon klar, dass der block beim kollegen falsch gefüllt wird. ich habe seine Datei geöffnet - funktioniert. bei ihm kommen nur nuller werte ausgedruckt ------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 10. Mrz. 2015 19:36 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Vorwahl und prüfen sind Blocksache, das kann man nur noch durch Attreq beeinflussen. Also muß man eine der Aussagen in Frage stellen. Da bei dieser einen Commandzeile in einem der beiden Fälle ein unbekannter Befehl geschickt werden würde, würde mich nun interessieren warum du davon nichts schreibst? Wäre ja bei deinem Kollegen der Fall da der Insert-Befehl bereits abgeschlossen ist. Gehst du die Sache wirklich in der Befehlszeile an und erhälst unterschiedliche Ergebnisse und nie ein unbekannter Befehl? Ich kann es nicht glauben. In der Hitze des Gefechts testet du nicht mit der Zeile die du gepostet hast (beim Kollegen) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 11. Mrz. 2015 07:25 <-- editieren / zitieren --> Unities abgeben:
Hi! Die angegebene Codezeile testete mein Kollege und bekam die Rückmeldung "unbekannter Befehl 25". Wie ihr sagt, der command-Befehl wurde bereits beedendet, bevor überhaupt der Attributwert eingefügt werden konnte. Mir ist das insofern fremd, da bei allen Rechnern dieser Aufruf einwandfrei ausgeführt wird. Ich möchte einfachhalber selbiges Problem an meinem Rechner simulieren. Dazu war mein erster Gedanke, es könnte evtl an einer anderen Sysvar liegen, wie ATTREQ oder ATTDIA Simuliert sieht es folgendermassen aus. Nur habe ich bei meinen Kollegen gecheckt, ob der Attributwert voreingestellt ist - Nein Erklärungsversuch [Diese Nachricht wurde von cadplayer am 11. Mrz. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
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: 11. Mrz. 2015 07:32 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Mrz. 2015 07:39 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 11. Mrz. 2015 07:50 <-- editieren / zitieren --> Unities abgeben:
Danke für alle Vorschläge Jörn, deinen Vorschlag.
Code: (defun c:xx() (setvar "ATTREQ" 0) (command "insert" "plushöjd" (getpoint "\nSelect a point") 1 1 0) (if (= "ATTRIB" (cdr (assoc 0 (entget (setq attrib (entnext (entlast))))))) (vla-put-TextString (vlax-ename->vla-object attrib) "0.75") (princ "\n*** Error") ) (setvar "ATTREQ" 1) )
werde ich heute mal nachgehen. ------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Mrz. 2015 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
So, nun noch mal: Nein, der Command wird natürlich nicht vorher beendet, aber der INSERT-Befehl, der Command schiebt dann deine 12.25 hinterher und weil Acad ja in keinem Befehl ist, wird versucht deine 12.25 als Befehl zu interpretieren. 12.25 ist aber nicht als Befehl bekannt. Video: Du zeigst das ganz normale Standardverhalten, wolltest du nicht zeigen wie es schief läuft Also beim Kollegen mit ATTREQ-Abfrage im Video (oder setzen der Variable direkt im Command) ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 11. Mrz. 2015 08:35 <-- editieren / zitieren --> Unities abgeben:
Ja ich glaube, ich habe die Ursache gefunden. Die Ursache liegt bei der Sysvar ATTREQ, die irgendwie nicht richtig anspricht beim Kollegen. Obwohl sie mit 1 deklariert ist, bekommt er angezeigt Code: Select a point Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>: 1 Enter Y scale factor <use X scale factor>: 1 Specify rotation angle <0>: 0 Command: 12.25 Unknown command "25". Press F1 for help.
Die Lösung von dir Jörn, hat da geholfen. Ich muss also den command-Aufruf entsprechend abändern oder gibt es vielleicht noch eine einfachere Lösung ? Es sind quasi mehrere Programmodule, bei denen ich die Blockattribute bediene ?!
------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Mrz. 2015 08:49 <-- editieren / zitieren --> Unities abgeben: Nur für cadplayer
Klar, statt es "irgendwie" zu machen würde ichder Attreq-Sache auf den Grund gehen und damit wir auch was zu staunen haben: Mach doch davon mal ein Video!! (command "ATTREQ" 1 "ATTDIA" 0 "_.insert" "plushöjd" (getpoint "\nSelect a point") 1 1 0 "12.25") PS: Imho stolperst du wieder über eigenen Codesalat und auf Acadseite ist alles ok. Ich behaupte sofort das Gegenteil wenn ein Video mit obiger Zeile kommt in welchem man dazu die Attdef-Eigenschaften sieht.
Aber zurück zur zielführenden Antwort: Wenn du das Programm in den Griff bekommst, dann crasht es beim Nächsten oder Übernächsten Block, einfach weil der definiert wurde mit "einheitlich skalieren" usw. Wenn du die Block geschichte im Griff haben möchtest, dann muß du selbst programmieren und dich nicht der AutoCAD-Befehle bedienen. Also ENTMAKE nutzen statt dem AutoCAD-Befehl Einfüge. PS: Bitte verwende doch immer die internationale Schreibweise in deinen Codeschnipseln, du wirst nicht mehr Helfer erreichen in denen du erst mal unnötig arbeitet bereitest nur um den Code testen zu können. Also "_.INSERT" und nicht "INSERT", (ssget "_X") und nicht (ssget "X") usw. VIELEN DANK von allen Hilfewilligen. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009
|
erstellt am: 11. Mrz. 2015 10:11 <-- editieren / zitieren --> Unities abgeben:
Ok Ich warte noch auf Rückmeldung auf meinen Kollegen. Was bei der Codezeile ausgegeben wird. Normalerweise und das hatte ich bei ihm getestet, sind die sysvar so definiert "ATTREQ" 1 "ATTDIA" 0 " Ich hatte es nur nicht expliziet in den Funktionen gemacht. Also, das habe ich jetzt bereinigt - mal sehen ob noch was witziges kommt ------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1832 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 11. Mrz. 2015 11:22 <-- editieren / zitieren --> Unities abgeben:
Also es gibt nichts zu lachen - ausser dass ich nur eure wertvolle Zeit beraubt habe. Mein erster Test am Rechner meines Kollegen ergab bei der Abfrage der sysvar "ATTREQ" 1 "ATTDIA" 0 " und das ist richtig für den command-Befehl Allerdings muss es irgendwie, die Variable bei Ausführung des Befehls umgestellt haben also ATTREQ<0> und dann lief der Befehl commmand "_insert" nicht richtig Es reichte aus, die Variablen bei Programmaufruf nochmals zu setzen (entsp. wie o.g) Es ist mir völlig unerklärlich - aber so sind die Dinge vielleicht manchmal, dass etwaas umstellt, ohne es befehlt zu haben. Danke an alle!
------------------ Gruss Dirk Blog | Adolf Spende | Infra-Feed
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |