| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Modelspace Refresh zur Laufzeit (1325 mal gelesen)
|
doubleq Mitglied Entwickler

 Beiträge: 10 Registriert: 31.05.2005 AutoCAD 2015
|
erstellt am: 25. Feb. 2008 21:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe ein VBA-Skript geschrieben das soweit auch funktioniert. Es werden einige 2D- und 3D-Objekte erzeugt. Das Problem ist: Die Erstellung startet nach einem Mausklick in einem Formular und die gezeichneten Objekte erscheinen erst wenn dieses Formular geschlossen wird. Gibt es eine Möglichkeit ein Neuzeichnen des Modelspace zur Laufzeit zu erzwingen? Ich habe eine entsprechende Funktion einfach nicht gefunden... Lg doubleq Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002
|
erstellt am: 26. Feb. 2008 07:00 <-- editieren / zitieren --> Unities abgeben:          Nur für doubleq
|
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 26. Feb. 2008 10:21 <-- editieren / zitieren --> Unities abgeben:          Nur für doubleq
|
doubleq Mitglied Entwickler

 Beiträge: 10 Registriert: 31.05.2005 AutoCAD 2015
|
erstellt am: 26. Feb. 2008 14:17 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Danke für Eure Antworten! Ich habe nun Eure Vorschläge ausprobiert - doch leider bleibt bei allen auch weiterhin der Modellbereich leer. Erst beim Schließen meiner Form werden die erstellten Objekte angezeigt. Mache ich da möglicherweise was falsch? Oder gibt es noch Andere Wege ein Neuzeichnen zu erreichen? Lg doubleq Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 26. Feb. 2008 14:34 <-- editieren / zitieren --> Unities abgeben:          Nur für doubleq
|
c.schojer Mitglied
 
 Beiträge: 299 Registriert: 23.05.2007 Autocad 2018
|
erstellt am: 27. Feb. 2008 21:14 <-- editieren / zitieren --> Unities abgeben:          Nur für doubleq
|
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 28. Feb. 2008 11:19 <-- editieren / zitieren --> Unities abgeben:          Nur für doubleq
Hallo, bei werden die eingefügten Objekte sofort angezeigt wenn nach dem Einfügen ein Update darauf gemacht wird. Ich hab mal ein Beispiel beigefügt.
Code: Option Explicit Private Sub CommandButton1_Click() Dim InsPkt(0 To 2) As Double Dim Spalte As Integer Dim Reihe As Integer Dim BlockRef As AcadBlockReference Dim Blockdef As AcadBlock Set Blockdef = GetBlockDef("Testblock") If Blockdef Is Nothing Then Set Blockdef = CreateTestBlock FillBlockList Me.ListBox1 End If For Spalte = 0 To 20 Step 2 For Reihe = 0 To 20 Step 2 InsPkt(0) = Spalte InsPkt(1) = Reihe Set BlockRef = ThisDrawing.ModelSpace.InsertBlock(InsPkt, "Testblock", 1, 1, 1, 0) BlockRef.color = Spalte + Reihe ' ==> Wenn ein Update durchgeführt wird werden die Blöcke sofort dargestellt ' sonst erst nach dem Schliessen der Form BlockRef.Update Next Reihe Next Spalte End SubPrivate Sub UserForm_Initialize() FillBlockList Me.ListBox1 End Sub Function FillBlockList(myListbox As Listbox) As Boolean Dim Blockdef As AcadBlock myListbox.Clear For Each Blockdef In ThisDrawing.Blocks If Not Blockdef.IsLayout And Not Blockdef.IsXRef Then myListbox.AddItem Blockdef.Name End If Next End Function Function GetBlockDef(Blockname As String) As AcadBlock On Error Resume Next Set GetBlockDef = ThisDrawing.Blocks(Blockname) If Err.Number Then Set GetBlockDef = Nothing End If On Error GoTo 0 End Function Function CreateTestBlock() As AcadBlock Dim Kreis(0) As AcadCircle Dim Füllung As AcadHatch Dim Pkt(0 To 2) As Double Set CreateTestBlock = ThisDrawing.Blocks.Add(Pkt, "Testblock") Set Kreis(0) = CreateTestBlock.AddCircle(Pkt, 1) Kreis(0).color = acByLayer Kreis(0).Update Set Füllung = CreateTestBlock.AddHatch(1, "SOLID", True) Füllung.AppendOuterLoop Kreis Füllung.Evaluate Füllung.color = acByBlock Füllung.Update End Function
Wilfried Stelberg------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
doubleq Mitglied Entwickler

 Beiträge: 10 Registriert: 31.05.2005 AutoCAD 2015
|
erstellt am: 05. Mrz. 2008 15:03 <-- editieren / zitieren --> Unities abgeben:         
|