| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Aktualisierung + Sendcommand (754 mal gelesen)
|
djs0401 Mitglied Studierender

 Beiträge: 20 Registriert: 18.02.2008 AutoCAD Mechanical 2007
|
erstellt am: 06. Mrz. 2008 13:55 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag ihr CADler ;-) Ich habe ein kleines Problemchen mit dem SendCommand Befehl. Bei meinem unten stehenden Programm, werden aus Drawings Blöcke in eine Zeichnung kopiert/platziert und sollen danach jeweils in eine Komponente (ACAD Mechanical Struktur) umgewandelt werden, mit dem Befehl _AMSCREATE . Von Hand funktioniert das soweit alles Klasse. Mit dem "LETZES" wird soll das letzte platzierte OBJEKT in eine neue Komponente umgewandelt werden. Nun hab ich das ganze in eine For-Schleife reingepackt. Nach jedem platzieren soll eine neue Komponente mit Inhalt des davor platzierten Objekts erzeugt werden. Das Problem ist dabei nur, dass die SENDCOMMANDS nicht sofort ausgeführt werden, sondern erst nachdem das Program druchgelaufen ist und ich ACAD Mechanical wieder aktiviert habe. Das bedeutet, dass nur das letzte OBJEKT in einer Komponente ist, zwar hab ich viele Komponenten nun in der Zeichnung, mit dem richtigen Namen aber die sind alle leer. Weiss einer Rat, wie ich das SENDCommand sofort bei jedem Schritt der For-Schleife ausführen kann? Danke schonmal für die Hilfe MFG Daniel Code: Private Sub Platzieren(ByRef m() As maschine, ByRef k() As komponente, ByVal rz As Integer, ByVal rz2 As Integer)' Platziert die Komponenten von links nach rechts abhängig von ihrer Stationsgrösse mit abhängigkeit ihrer Breite... ' ... und Durchlaufbreite Dim einfugPkt(0 To 2) As Double Dim blockObj As AcadBlockReference Dim dateipfad As String Dim i As Integer Dim p As Double Dim breite As Double Dim durchl As Double Dim b(0 To 1000) As Double Dim z As Integer Dim p1(0 To 1) As Double Dim p2(0 To 1) As Double laenge = 0 breite = 0 einfugPkt(0) = 0 einfugPkt(1) = 0 einfugPkt(2) = 0 z = 0 durchl = Val(TextBox2.Text) For i = 2 To (rz + 1) ProgressBar1.Value = (100 / (rz + 1)) * (i) If m(i).sonder = 1 And m(i).sta = 1 Then einfugPkt(0) = 0 einfugPkt(1) = 0 z = z + 1 b(z) = m(i).breite Else Select Case m(i).sonder Case Is = 1 'Unterbau einfugPkt(1) = 0 z = z + 1 b(z) = m(i).breite breite = breite + (b(z - 1) + b(z)) / 2 Case Is = 3 'Vorschub einfugPkt(1) = -(1 / 2) * durchl Case Is = 2 'Kneteinheit einfugPkt(1) = (1 / 2) * durchl End Select End If dateipfad = "C:\daten\Projekt Automatisiertes Layout\EigeneNeueDWGs\" & m(i).bez & ".dwg" einfugPkt(0) = breite einfugPkt(2) = 0 Set blockObj = ThisDrawing.ModelSpace.InsertBlock(einfugPkt, dateipfad, 1#, 1#, 1#, 0) blockObj.Update ThisDrawing.SendCommand "_AMSCREATE" & vbCr & "K" & vbCr & m(i).bez & "N:" & i & vbCr & "DRA" _ & vbCr & "M" & vbCr & "LETZTES" & vbCr & vbCr & einfugPkt(0) & "," & einfugPkt(1) & vbCr Next i Call gehaeusezeichnen(m(), rz, breite, durchl) Call kabelzeichnen(m(), rz, breite, durchl) End Sub
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: 06. Mrz. 2008 16:55 <-- editieren / zitieren --> Unities abgeben:          Nur für djs0401
Hallo Daniel, hast du während der Laufzeit ein Formular auf. Per default wird ein Formular modal angezeigt. Wenn dieses so ist, ist AutoCAD so lange blockiert wie dein Formular angezeigt wird. Du musst es dann ausblenden. Siehe auch mal híer 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 |
djs0401 Mitglied Studierender

 Beiträge: 20 Registriert: 18.02.2008 AutoCAD Mechanical 2007
|
erstellt am: 07. Mrz. 2008 08:37 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |