Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Abfrage beim Insert ob Block dynamisch

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:  Abfrage beim Insert ob Block dynamisch (1883 mal gelesen)
gerhard123
Mitglied
techn.Angestellter


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

Beiträge: 151
Registriert: 29.11.2007

erstellt am: 06. Sep. 2013 10: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

Hallo zusammen,

wie kann ich beim Einfügen eines Wblocks abfragen ob dieser ein dynamischer Block ist oder ein normaler Autocadblock??
Geht das überbaupt??

Lg.
Gerhard

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 06. Sep. 2013 11: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 Nur für gerhard123 10 Unities + Antwort hilfreich

... Hmm .. WBlock .. einfügen .. ??? So richtig weiß ich nicht, was du meinst. Aber über die ActivXschnittstelle kann man auf die Eigenschaft IsDynamicBlock der Blockdefinition / Referent zugreifen .....

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 06. Sep. 2013 12:01    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 gerhard123 10 Unities + Antwort hilfreich

direkt beim Einfügen geht das erstmal nicht. Wenn der Block schon in der Zeichnung definiert ist, dann kansst du das vorher prüfen, Wenn das ein Block ist, der erst in die Zeichnung reinkommt dann kannst du das auch erst prüfen, wenn er in der Zeichnung ist.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

gerhard123
Mitglied
techn.Angestellter


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

Beiträge: 151
Registriert: 29.11.2007

erstellt am: 06. Sep. 2013 12: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 Thomas,

was ich meine:
Bevor ich den Block "c:\\temp\\Block.dwg" einfüge abzufragen ob es sich dabei um einen dynamischen Block handelt.
Wenn dynamisch dann
(command "_insert" "c:\\temp\\Block.dwg")
sonst soll der Block schon ausgericht eingefügt werden.
(command "_insert" "c:\\temp\\Block.dwg" pt 0 0 0)

Ich hoffe du kannst jetzt meine Frage versehen.

Lg.
Gerhard

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 06. Sep. 2013 12:47    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 gerhard123 10 Unities + Antwort hilfreich

jo ist machbar, aber wie Cadwiesel schon sagt, der Block muss in der Zeichnung sein, dann kann ich testen und dann kann ich die Blockreferenz entsprechend erzeugen ... der command Aufruf von "_insert" vereinigt das Laden und die Blockreferenz erzeugen ... entweder du schreibst dir für beide Vorgänge was eigenes oder du rufst den Insert-Befehl mit Dateiname auf , brichst ab, testest dann den Block und rufst dann nochmal den Insertbefehl mit dem Blocknamen entsprechend Dyn/nicht dyn auf ...

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

gerhard123
Mitglied
techn.Angestellter


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

Beiträge: 151
Registriert: 29.11.2007

erstellt am: 09. Sep. 2013 07: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

Hallo Thomas, hallo CADwiesl,

danke für eure Tips, das ist auch ein gangbarer Weg.
Ich wollte mir eben nur das vorherige Einfügen des Blocks ersparen.

Liebe Grüße
Gerhard

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 09. Sep. 2013 16:31    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 gerhard123 10 Unities + Antwort hilfreich


lut.dwg.txt

 
Ein Frage am Rande:
Kann es sein, wenn man einen dynamischen Block mit 2 visibility Attributen einfügt immer nur ein Attribut (das sichtbare) abgefragt wird (siehe Block)

Code:
-INSERT Enter block name or [?] <test>: lut%

Units: Meters  Conversion: 1.00000000
Specify insertion point or [Basepoint/Scale/X/Y/Z/Rotate]: Specify scale factor or [Corner/XYZ] <1>:

Specify rotation angle <0>:

Enter attribute values
LUT-v <0.0>:


[Diese Nachricht wurde von cadplayer am 09. Sep. 2013 editiert.]

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 09. Sep. 2013 16: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 gerhard123 10 Unities + Antwort hilfreich

Ja, macht zudem Sinn gell

------------------
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


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

Beiträge: 1832
Registriert: 28.04.2009

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

wie kann man dann die jeweiligen attribute abfragen. bei
soll bei einem neg. resultat das erste und bei pos. result das
zweite attribut ausgefuellt werden

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 09. Sep. 2013 18:42    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 gerhard123 10 Unities + Antwort hilfreich

Wo wir eigentl. wieder bei der Ausgangsfrage wären. Sollte ein dynamischer Block aufgerufen werden, der sich noch nicht in der Zeichnung befindet, wie weiss er dann, ob ein visibility param. dranhängt. Bräucht mal eine Erklärung mit Tiefgang, als
Zitat:
Ja, macht zudem Sinn gell

Nochmal zum Verständnis: ich füge einen Block ein, der extern als dyn. Block bestehend aus einem Symbol und zwei Attributen liegt. In der Blockreferenz sind die Attribute mit einem "Sichbarkeit"verweis versehen.

Code:
Stand1: 1. Attribut wird angezeigt + Pfeil rechts
Stand2: 2.Attribut wird angezeigt + Pfeil links
.

Als Aufgabe wird ermittelt, ob die Differens zwischen zwei Höhen positiv oder negativ ist und entsprechend das Gefälle [wert]+[Pfeilrichtung] angezeigt.

Sicherlich wäre es schneller zu lösen, einfach 2 unterschiedliche Blöcke zu definieren und entspr. zu erzeugen.
Es macht hier aber Sinn einen dyn. Block einzusetzen, der hin- und hergestellt wird.

Leider kann ich nicht durchschauen, was passiert beim insert-Aufruf.
Ich könnte jetzt nur den Weg gehen, mir den Block blanko einfügen zu lassen und anschliessend die Attribute zu manipulieren.

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 09. Sep. 2013 22: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 gerhard123 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von gerhard123:
wie kann ich beim Einfügen eines Wblocks abfragen ob dieser ein dynamischer Block ist oder ein normaler Autocadblock??
Geht das überbaupt??

Ja das geht, da aber der Block in der DWG noch nicht definiert ist und der ganze Modelspace erst beim Einfügen in die Zieldatei
zum neuen internen Block wird, mußt du in der Quelldatei den Modelspace auf vla-get-IsDynamicBlock abfragen.
Allerdings ergibt sich daraus die nächste Frage: Was hilft dir diese Info ?
Damit du wie gewünscht
ausgerichtet/nicht ausgerichtet entscheiden kannst, muß dir der Block doch so wie so bekannt sein. Wenn der Block einen Umkehrparameter hat,
dann ist er dynamisch - es macht in dem Fall  aber keinen Sin´n den Block nicht auszurichten, richtig ?
Dir muß also bekannt sein was das für ein Teilchen ist und wenn es dir bekannt ist, dann kannst du auch über den Blocknamen regeln was es machen soll.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 09. Sep. 2013 23:06    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 gerhard123 10 Unities + Antwort hilfreich

Zitat:
Leider kann ich nicht durchschauen, was passiert beim insert-Aufruf.
Ich könnte jetzt nur den Weg gehen, mir den Block blanko einfügen zu lassen und anschliessend die Attribute zu manipulieren.

Wieso kannst du das nicht ? Befehl: _Insert .... machen/testen = Wissen. Aus erster Hand.
Zudem sind Funktionen rund um Blöcke am meisten diskutiert und auch dokumentiert, man muß
sich halt nur mal rann setzen.

Wenn man eine DWG als Block einfügt, dann wird zunächst eine Blockdefinition erstellt (oder neu definiert),
das bedeutet das Acad nachschaut was alles nötig ist für den Block, da wäre Textstile, Bemaßungsstile, Layer und so weiter.
Alles was er benötigt(vom Namen her noch nicht kennt) wird importiert, danach wird der Block definiert
(oder der vorhandene interne Block geändert).
Modellbereich Elemente werden zum Blockinhalt, insunits der DWG werden zu insunits des Blockes,
insbase wird zum Basispunkt - wenn er nicht durch dynamische Parameter überstimmt wird, usw.
Dann folgt der normale Insert-Vorgang durchgeführt, je nach Blockinhalt und Einstellungen werden dann Einfügepunkt,
x-Skalierung, y-Skalierung und Drehung abgefragt, ggf. Attributwerte, dann wird eine Blockreferenz(Insert)
erzeugt und ggf. gesprengt, voila.

Für dich noch andere Punkte: Du hast EINE Prozentangabe, wieso willst du dann ZWEI Attribute nutzen,
da reicht doch dann ein Attribut oder nicht ? Kann man doch sicher diese schönen Abhängigkeiten zum
ausrichten nutzen, oder ? <kenn mich da nicht so aus, hat man ja aber in ein paar Minuten raus  >

Zum Thema: Du kannst doch über den _Insert-Befehl so wie so nicht bestimmen welche Sichtbarkeit genutzt werden soll,
es wird immer die Vorgabesichtbarkeit genutzt. Also wären hier ganz anderen Wege sinnvoll nehme ich an.

------------------
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


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 10. Sep. 2013 10: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 gerhard123 10 Unities + Antwort hilfreich


Untitled2.jpg

 
Zitat:
Du hast EINE Prozentangabe, wieso willst du dann ZWEI Attribute nutzen,
da reicht doch dann ein Attribut oder nicht ?

2 Attribute, weil wie im Bild ein Attribut das Gefälle nach recht und das zweite das Gefälle nach links anzeigt.

Tja vllt wäre es ja ein Vorschlag an Autodesk, bei der Abfrage eines Wblocks auch die dynamischen Parameter mit abzufragen, würde Sinn machen.
Ich musste es jetzt so lösen, die 2 Attribute aufeinander abzugleichen, so das in beiden Einträgen der gleiche Wert steht.

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

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