Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  DynamicBlockReferenceProperty / Value =

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:  DynamicBlockReferenceProperty / Value = (1085 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2019/2020
CAD+T 2020
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 22. Mrz. 2018 21: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

Hallo Zusammen!

Ich bin gerade dabei mit dynamischen Blöcken etwas zu probieren.
In einer Zeichnung habe ich eben solch einen dynamischen Block.
Name: Info_Materialien
Abstandswert 1: Raster = 5.684
In diesem Abschnitt wird der Programmteil aufgerufen und iy als Multiplikator für den Abstand1 übergeben.
Lider wird der dynamische Block nicht gefunden?
Kann mir da jemand bitte weiterhelfen, woran das liegen könnte.

Code:

Public Sub Finde_Block(ByVal iy As Integer)
  Dim mydoc As Document = DocumentManager.MdiActiveDocument
  Dim mydb As Database = mydoc.Database
  Dim myed As Editor = mydoc.Editor

  Using trans As Transaction = mydoc.TransactionManager.StartTransaction
  Try
      Dim laymngr As LayoutManager = LayoutManager.Current
      Dim la As Layout = trans.GetObject(laymngr.GetLayoutId(laymngr.CurrentLayout), OpenMode.ForRead)
      Dim LaName As String = la.LayoutName

      Dim MyFiList(2) As TypedValue
      MyFiList.SetValue(New TypedValue(DxfCode.Start, "INSERT"), 0)
      MyFiList.SetValue(New TypedValue(DxfCode.BlockName, "*Info_Materialien*,U1*"), 1)
      MyFiList.SetValue(New TypedValue(DxfCode.LayoutName, LaName), 2)

      Dim MyFilter As New SelectionFilter(MyFiList)
      Dim res As PromptSelectionResult = myed.SelectAll(MyFilter)

      If res.Status <> PromptStatus.OK Then
          Return
      End If
     
      Dim selSet As SelectionSet = res.Value

      Dim idArray As ObjectId() = selSet.GetObjectIds()
      For Each blkId As ObjectId In idArray
          Dim blkRef As BlockReference = DirectCast(trans.GetObject(blkId, OpenMode.ForRead), BlockReference)
          Dim btr As BlockTableRecord = DirectCast(trans.GetObject(blkRef.BlockTableRecord, OpenMode.ForRead), BlockTableRecord)

          'Prüfen ob überhaupt Blöcke gefunden werden, ja, alle, nur nicht der dynmische - Info_Materialien.
          'MsgBox("Blockname = " & btr.Name)

          If btr.IsDynamicBlock Then
              For Each mydynProp As DynamicBlockReferenceProperty In blkRef.DynamicBlockReferencePropertyCollection
                  If mydynProp.PropertyName = "Abstand1" Then
                      mydynProp.Value = iy * 5.684
                  End If
              Next
          End If
      Next
      trans.Commit()
      Catch ex As Autodesk.AutoCAD.Runtime.Exception
          MsgBox(ex.Message)
      End Try
  End Using
End Sub



Vielen Dank.

------------------
Gruß

Dirk

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

System: F1
und Google

erstellt am: 22. Mrz. 2018 21: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 Dirk.B 10 Unities + Antwort hilfreich

Bitte erzeuge mit dem Befehl EINFÜGE eine neue Blockreferenz von dem Block, bitte ändere diese Blockreferenz NICHT mit den dynamischen Eigenschaften.

Klappt es jetzt?
Wenn du jetzt den Blocknamen von der Blockreferenz abfragen würdest wäre dieser "Info_Materialien"

Ändere die Blockreferenz anhand der dynmischen Möglichkeiten, ändere also einen der Werte.

Klappt es immernoch? Wohl Nein.
Wenn du jetzt den Blocknamen von der Blockreferenz abfragen würdest wäre dieser "*Unn"
Daher findet deinerseits überhaupt keine Auswahl der Blockrefernz statt!

Hier mal ein Artikel in dem auch auf die grandiosen "dynamischen Blöcke" eingegangen wird:
http://ww3.cad.de/foren/ubb/Forum54/HTML/013223.shtml

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2019/2020
CAD+T 2020
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 27. Mrz. 2018 10: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 cadffm!

Vielen Dank für die Infos.
Habe es nun so geändert, dass der dynamische Block eingefügt wird und nicht schon in der Zeichnung vorhanden ist.
Dann lässt sich auch der Wert mit übergeben.

------------------
Gruß

Dirk

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