Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Objektauswahl mit Handle

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
Autor Thema:   Objektauswahl mit Handle (606 mal gelesen)
woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 02. Nov. 2018 14:48    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

Moin, 
ich bin VBA Anfänger, deswegen bitte nicht über die Frage wundern.

Ich möchte mit Hilfe von VBA ein Objekt bewegen, von welchen ich die Object Handel als String in der Variable "Opjekt_gefundener_Block" gespeichert habe.
Leider habe ich keine Ahnung wie der Befehl ThisDrawing.SendCommand  aufgebaut sein muss, damit der die Variabel "Opjekt_gefundener_Block" übernimmt.

Hat da einer einen Tipp für mich?

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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: 19581
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 02. Nov. 2018 15:15    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 woppi 10 Unities + Antwort hilfreich

Ich würde die Variable "Objekt_gefundener_Block" nennen.

Wenn du von Sendcommand sprichst und einen Standard-AutoCADbefehl nutzen möchtest,
dann versteht dieser (fast immer) wenn man den EntityName(ename) übergibt,
also ein Ausflug in die Lispwelt wäre ein einfacher Weg.

Wenn die Objektwahl startet, dann folgenden String senden // alles was in der nächsten Zeile steht muß als String in der Befehlszeile ankommen.
(handent "3AB")


wobei hier 3AB das Handle als Beispiel verwendet wurde.

Kannst es ja in Acad mal in der Befehlszeile testen:

Hiermit mal eben schnell ein Handle abfragen:
(alert(cdr(assoc 5 (entget(car(nentsel))))))

Und dann den Befehl Schieben aufrufen, wenn die Objektwahl ansteht gibst du folgendes ein
(handent "3AB")
wobe 3AB gegen das entsprechende Handle zu tauschen ist, anschließend beendest du die Objektwahl und kannst das Objekt verschieben..

Andernfalls: Mußt du einen Auswahlsatz(selectionset) erstellen mit dem/den Objekt(en) und diesen nutzen.

Von Handle zu Objekt kommst du mit der Methode HandleToObject

[Diese Nachricht wurde von cadffm am 02. Nov. 2018 editiert.]

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 02. Nov. 2018 15: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

Hallo Cadffm,

vielen vielen Dank, das klappt wunderbar, habe es direkt in meinen Code eingebaut.

Gut dass meine Variable schon "Objekt_gefundener_Block" hieß, das "Opjekt" war nur ein Tippfehler hier in dem Forum.

Dir noch ein schönes Wochenende!


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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2152
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2019
Plateia, Canalis
Visual Basic

erstellt am: 02. Nov. 2018 16:55    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 woppi 10 Unities + Antwort hilfreich

Hallo Woppi,

Dumme Frage, wenn Du das Objekt schon in VBA hast, warum bemühst Du dann erst Sendcommand?
Wäre es nicht einfacher nur den Block.InsertionPoint zu ändern?

Du schreibst ja Du bist VBA-Anfänger, verstehe ich so dass Du evtl. mehr damit möchtest.
Bei Problemen kannst Du auch gerne deinen Code hier einstellen dann könnte man auch gezieltere Hilfe geben.

Grüße
Klaus 

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 02. Nov. 2018 17:23    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 Klaus,

das mit dem Verschieben war nur ein Beispiel, mir ging es vor allem darum wie bekomme ich die "Handel Nummer" an den Commandbefehl.

Block.InsertionPoint ist natürlich auch eine super Möglichkeit. Wie wäre da der Syntax?
Und für dann Fall das Du so nett bist, kann ich damit auch die aktuellen Einfügepunkte abfragen?

Beste Grüße

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2152
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2019
Plateia, Canalis
Visual Basic

erstellt am: 02. Nov. 2018 17:39    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 woppi 10 Unities + Antwort hilfreich

Hi,
Wenn Du das BlockReference-Objekt hast, gibt es die Eigenschaft InsertionPoint, ein Array mit drei Werten
InsertionPoint(0) = X
InsertionPoint(1) = Y
InsertionPoint(2) = Z

Grüße
Klaus 

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 02. Nov. 2018 22:21    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 Klaus,

das werde ich direkt am Montag probieren, jetzt ist Feierabend und zu Hause habe ich leider kein Autocad.

Schönes Wochenende
Woppi

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 06. Nov. 2018 12:40    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, ich habe da schon wieder eine Frage.

Es hängt nochmals mit den Blöcken zusammen, ich bin Dank Eurer Hilfe schon weiter gekommen, habe aber jetzt das Problem des ich mit den Objektzuweisungen nicht zurechtkomme.

Kann ich auch direkt die "GetDynamicBlockProperties" eines Blockes auslesen, von dem ich den Namen weiß?


Code:
Dim props As Variant                            'Blockparameter
Dim prop As AcadDynamicBlockReferenceProperty
Dim I As Integer



' was muss an die Stelle von XXXXXXX?  Ich habe den Blocknamen, oder die ID etc. weiß aber nicht wie ich das eingeben oder declarieren muss.

 
Code:

  props = XXXXXXX.GetDynamicBlockProperties
      For I = 0 To UBound(props)
        Set prop = props(I)
        If Not UCase(prop.PropertyName) = "ORIGIN" Then        'verhindern das "ORIGIN" auch bei den Parametern angezeigt wird
          'MsgBox "Gefundener Parameter: " & Chr$(9) & prop.PropertyName & Chr$(13) & "mit dem Wert: " & Chr$(9) & Chr$(9) & prop.Value
      Else
          Debug.Print prop.PropertyName
        End If 'ORGINE
      Next
Next

ich hoffe, ich habe mit verständlich ausgedrückt

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2152
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2019
Plateia, Canalis
Visual Basic

erstellt am: 06. Nov. 2018 13: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 woppi 10 Unities + Antwort hilfreich

Schau mal hier 
Ist es das was Du suchst?

Grüße
Klaus 

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 06. Nov. 2018 17:08    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 Klaus,

fast, nur wird da der Block auch in der Zeichnung ausgewählt.
Bei mir wird der Block in einem UserForm ausgewählt, daher habe ich den Namen des Blocks (ListBox1.Value) oder (ListBox1.Name)
ich weiß nur nicht wie ich den dann in dem Code Anstelle von XXXXXX einsetzten kann.

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2152
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2019
Plateia, Canalis
Visual Basic

erstellt am: 06. Nov. 2018 19:43    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 woppi 10 Unities + Antwort hilfreich

Hallo woppi,

So ganz verstehe ich nicht was Du meinst.
Wenn Du den Blocknamen aus Deinem UserForm hast, was soll das darstellen?
Ist es ein ausgewähler Block, somit Blockreferenz?
Oder ist es der Name des Blockes und damit die Zeichenanweisung?

Die Methode "GetDynamicBlockProperties" gilt für Objekte vom Typ: BlockReference, MInsertBlock
aber nicht für AcadBlock

Kannst ja auch mal hier lesen, da geht es ziemlich ausführlich um dynamische Blöcke.

Grüße
Klaus 

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 07. Nov. 2018 11:55    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 Klaus,

nochmals vielen Dank für Deine Hilfe.

Ich habe mir das durchgelesen, und auch Deinen Code ausprobiert. Einen Teil davon verwendet, und meinem Ziel ein ganzes Stück näher gekommen.
Aber schon ist das nächste Problem da:
Ich versuche (auch mit Hilfe von deinem Code) jetzt noch eine Schleife zu bauen, die alle in der Zeichnung enthaltenden dyn.Blöcke durchläuft.
Und möchte dort die rausfiltern die auf einer bestimmten Blockreferenz beruhen (z.B.: "Profil_Vorsatzplatte_2_Nuten_Variabel")
Von all denen auf die das zutrifft möchte ich dann Werte eines bestimmten Parameters auslesen. (das bekomme ich glaube ich auch hin)

Das Problem ist das Filtern der Blöcke und das Übergeben des Blocks an die Variable "tBlockRef"
damit ich mit den Parametern weiter machen kann.

Code:
Sub GetParameter_alle_Blöcke_einer_Sorte()

  Dim Ent As AcadObject
  Dim tBlock As AcadBlock
  Dim tBlockRef As AcadBlockReference

    For Each Ent In ThisDrawing.Blocks
 
      If Left(Ent.Name, 2) = "*U" And Not Ent.Name = "*Model_Space" And Not Left(Ent.Name, 6) = "*Paper" Then ' nur anonyme Blöcke
        Debug.Print Ent.Handle & "als anonymer Block: " & Ent.Name & Chr$(13)
       
        'Hier soll noch der Filter für den Blockreferenzname hin.
       
               
        'und dann muss hier der Block an die Variable "tBlockRef" übergeben werden,
        '(neu Einfügen geht ja nicht, dann habe ich ja nur die Standard Werte in den Parametern)    
        Set tBlockRef = ThisDrawing.ModelSpace.InsertBlock(InsertionPnt, Ent.Name, 1#, 1#, 1#, 0)
       


Vieleicht kann man das ja auch gar nicht so verwirklichen, wie ich mir das vorstelle.

Verzweifelte Grüße
Woppi

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 249
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 07. Nov. 2018 12:58    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 woppi 10 Unities + Antwort hilfreich

Hi, das dürfte durchaus gehen. Ist aber komplex da die dynamischen Blockreferenzen anonymisiert vorliegen. Nun begebe ich mich etwas auf das Glatteis, da ich das noch nie so wirklich untersucht habe. Wenn man den Ursprungsblock (da kommt man mit blockref.effectivename dran) rekursiv durchläuft um an die Blocknamen der Unterblöcke zu kommen dürften man nicht an die Parameter der Dynamischen Eigenschaften kommen da die alle auf "Default" stehen. Deswegen denke ich das man sich rekursiv durch die die anonymen Blöcke hecheln muss. Also erst die (anonyme) Referenz suchen und dann deren Block definition aufmachen um an die (anonymen) Unterblöcke zu kommen. Es sind ja automatisch erzeugte Kopien des Originalblockes. Sie heißen üblicherweise "*U[Nummer]". Da nur diese die ersehnten Parametereinstellungen aufweisen dürften. Zum Thema Blöcke habe ich mal eine Library hier gepostet. Da sollte auch ein Beispiel für eine Rekursion drin sein. Lieben Gruß Thomas

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< for sale !

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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: 19581
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 07. Nov. 2018 13:10    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 woppi 10 Unities + Antwort hilfreich

Dann steuere ich mein Halbwissen bei (halb, da nicht aus VBA-Sicht betrachtet  )
Zitat:
Original erstellt von woppi:
Und möchte dort die rausfiltern die auf einer bestimmten Blockreferenz beruhen (z.B.: "Profil_Vorsatzplatte_2_Nuten_Variabel")

Entweder du möchtest etwas unmögliches oder du wirfst die Vokablen weiterhin durcheinander..

Blockreferenzen referenzieren einen Block, nie anders herum (es sei denn es geht um eine in einem Block verschachtelte Blockreferenz).

Also: Die Datenbank durchlaufen und für jede Blockreferenz prüfen ob der effektivename dem gewünschten entspricht,
falls JA hast du eine Blockreferenz deines dynamischen Blockes und der blockNAME zeigt die wirkliche Blockdefinition auf
die diese Referenz verweist.

<Ich lasse jetzt mal "Problemfälle" bei Seite, denn so eine dynamische Verbindung kann auch mal brechen und dann hat plötzlich auf noch mehr zu achten  >

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 07. Nov. 2018 14: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

Zitat:
Also: Die Datenbank durchlaufen und für jede Blockreferenz prüfen ob der effektivename dem gewünschten entspricht,
falls JA hast du eine Blockreferenz deines dynamischen Blockes und der blockNAME zeigt die wirkliche Blockdefinition auf
die diese Referenz verweist.

so habe ich mir das auch gedacht.
deswegen hier alle Blöcke mit "*U*:

Code:
If Left(Ent.Name, 2) = "*U" And Not Ent.Name = "*Model_Space" And Not Left(Ent.Name, 6) = "*Paper" Then ' nur anonyme Blöcke
        Debug.Print Ent.Handle & "als anonymer Block: " & Ent.Name & Chr$(13)

Und dann wollte ich mit so was ähnlichen wie:

Code:
If Ent.Name = ListBox1.Value Then

weiter machen, um nur die von mir gewünschten Blöcke zu haben.

aber mit ent.Name geht es nur wenn es so declariert ist: Dim Ent As AcadEntity
Aber um alle Blöcke in der Zeichnung zu durchlaufen muss es doch so declarieren:  Dim Ent As AcadObject ,oder?
Und dann komme ich nicht mehr an den "echten" Namen, nur noch an die ObjektID oder "*U..." oder Handle, und kann die anderen Blöcke nicht auschließen.

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2152
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2019
Plateia, Canalis
Visual Basic

erstellt am: 07. Nov. 2018 15: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 woppi 10 Unities + Antwort hilfreich

Hallo Woppi,
gerade keine Zeit zum testen und nur mal Deinen Code gesehen.
Bist Du Dir sicher dass Du mit dem Durchlaufen von ThisDrawing.Blocks Dein gewünschtes Ergebnis bekommst?

Du suchst doch die Blockreferenzen in der Zeichnung.
Somit müßtest Du ThisDrawing.ModellSpace durchsuchen nach ent.ObjectName = AcadDbBlockReference
dann testen ob dieser Block ein dynamischer ist ent.IsDynamicBlock = True
dann holst Du Dir den Ausgangsnamen des Blocks ent.EffectiveName
und vergleichst mit Deinem Listennamen

Hoffe die Eigenschaften und Methoden sind richtig geschrieben, war nur mal schnell ausd dem Gedächtnis

Grüße
Klaus 

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 08. Nov. 2018 07:48    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 Klaus,

das waren die richtigen Tipps, jetzt sieht es gut aus.

Der Abgleich der Blocknamen (If Ent.EffectiveName = ListBox1.Value Then...) funktioniert.
Danke!!

Ich hoffe ich habe heute etwas Zeit neben der Arbeit um mit dem Programm weiter zu kommen.

Beste Grüße Ludger

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

woppi
Mitglied
cnc-programmierung


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

Beiträge: 55
Registriert: 16.01.2009

erstellt am: 13. Nov. 2018 10: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

Hallo,
ich wollte nur noch mal Danke für die Hilfe sage.

Ich habe mein Makro Dank Eurer Unterstützung jetzt fertig, und es klappt wunderbar und Hilft mir sehr bei meiner Arbeit.


Beste Grüße

Ludger

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)2019 CAD.de | Impressum | Datenschutz