Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Komponenten Platzieren mit VBA

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:  Komponenten Platzieren mit VBA (1431 mal gelesen)
djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 20. Feb. 2008 12: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
Habe da ein Problem: In der Firma in der ich grade ein Praktikum mache, soll ich ein Automatisiertes Layout Makro erstellen. Die Zeichnungen, die zusammen gefügt werden sollen sind als Komponenten gespeichert, d.h. 4 Ansichten in der Datei enthalten.
Für die gewünschte Zeichnung brauch ich aber nur die draufsicht.
Bisher habe ich diesen code benutzt:

Code:
Private Sub Platzieren(ByRef m() As maschine)
Dim einfugPkt(0 To 2) As Double
    Dim blockObj As AcadBlockReference
    Dim dateipfad As String
    'm() bekomm ich aus einem Unterprogramm aus einer Excel liste
    dateipfad = "C:\daten\Projekt Automatisiertes Layout\CadDWGs\" & m(2).bez & ".dwg"
    einfugPkt(0) = m(2).pos1
    einfugPkt(1) = m(2).pos2
    einfugPkt(2) = 0
    Set blockObj = ThisDrawing.ModelSpace.InsertBlock(einfugPkt, dateipfad, 1#, 1#, 1#, 0)
    blockObj.Update
    MsgBox ("Komponente " & m(2).bez & " wurde platziert.")
End Sub

Aber wenn ich dies auf die Dateien verwende, die mehrere Ansichten beinhalten, werden alle 4 Ansichten auf einmal platziert. Wie kann ich jetzt eine einzelne Ansicht aus einer Datei nehmen und platzieren?

Danke schonmal

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

ACAD 2008 Mechanical

erstellt am: 20. Feb. 2008 12:24    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 djs0401 10 Unities + Antwort hilfreich

...du kannst die Datei mittels dbx-Server öffnen und via der Methode copyobjects die entsprechenden Objekte in die aktuelle Zeichnung holen ...

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

djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 20. Feb. 2008 14:49    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

hmm bin leider sehr AutoCAD unerfahren und Visual Basic muss ich auch noch einiges lernen...
Könntest du da näher drauf eingehen, wie man das macht? Hoffe das es nicht allzu schwer ist ;-)

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

ACAD 2008 Mechanical

erstellt am: 20. Feb. 2008 14:59    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 djs0401 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von djs0401:
hmm bin leider sehr AutoCAD unerfahren und Visual Basic muss ich auch noch einiges lernen...
Könntest du da näher drauf eingehen, wie man das macht? Hoffe das es nicht allzu schwer ist ;-)

Nein kann ich nicht, da ich nicht in VBA bewandert bin, sondern eher in Lisp und da das doch eine etwas umfangreichere Sache ist, die einen Einsteiger, welcher nicht nur den Code zusammenkopieren will, IMHO überfordert.

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

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



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

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - ACA 2013
Arcibem
System:
Windows NT, 2000, XP
Internet-Startseite:
http://www.archi.de

erstellt am: 20. Feb. 2008 15:24    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 djs0401 10 Unities + Antwort hilfreich

Hi,
wenn Du die Koordinaten der Ansichten kennst, dann könntest Du den eingefügten Block auch zuschneiden, um nur eine bestimmte Ansicht darzustellen. Der Block enthält dann zwar alle Ansichten, im Layout siehst Du aber nur den zugeschnittenen Bereich (= benötigte Ansicht).

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

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

djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 20. Feb. 2008 15:54    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

hmm Danke Wronzky ist zwar ne Lösung aber nicht wirklich eine saubere... da könnt ich ja gleich die draufsicht aus einer Komponente herauskopieren und in eine neue Zeichnung kopieren und diese dann laden.
Sollte doch irgendwie möglich sein, die versch. Ansichten direkt zu kopieren/platzieren.

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 20. Feb. 2008 16:13    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 djs0401 10 Unities + Antwort hilfreich

Hallo,

ich habe leider nicht verstanden was du machen willst. 

Zu ObjectDBX gibt es unter anderem hier einen Thread.

Ich habe keine Ahnung was bei dir Komponenten sind. Mit Hilfe von ObjectDBX lassen sich eigentlich alle Objekte einer Zeichnung manipulieren oder in andere Zeichnungen kopieren. Der Vorteil ist, dass du bei der Variante mit ObjectDBX, die Zeichnung nicht im AutoCAD öffnen musst.

Vielleicht beschreibst mal genauer wie das gehen soll.
Sollen Daten kopiert werden, oder Layouts oder oder ...

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


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 20. Feb. 2008 16: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

Hab deinen Link noch net angeschaut aber danke schonmal. Ich schau später mal.

Es sollen einzelne Module/Bauteile aus verschiedenen Zeichnungen(die mehrere Ansichten enthalten, brauche aber nur die draufsicht) über das einlesen einer Stückliste zu einem Layout zusammengfügt werden. Einlesen der STL klappt.
Es klappt nur nicht, dass ich aus den Zeichnungen die einzelne Ansicht herausziehen kann... Diese Ansichten sind nicht einfach zu einem Block zusammengefügt sondern in einzelnen Komponenten d.h. links am Navigator rechte Maustaste Neu -> Komponente... dann kann man eine Erstellen. Also zumindest bei AutoCAD 2007. Wenn du noch nicht weisst was ich meine kann ich auch ein Bild davon machen. Kann es nich besser erklären sorry.

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 20. Feb. 2008 18: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 Nur für djs0401 10 Unities + Antwort hilfreich

Hallo Namenloser,

ich hab links keinen Navigator, ich hab rechts eine Darstellungsverwaltung 

Im RuA hast du ja auch schon mal deine AutoCAD Version angegeben.
Hast du auch noch Zusatzprogramme ???

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


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 21. Feb. 2008 08:37    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


test.jpg

 
Sorry heisse Daniel ;-)

Also ich hab jetzt mal ein Bildchen hinzugefügt. Darauf sind 2 Darstellungen/Ansichten. Links in meinem "Navigator" ist ein Ordner "Test" , dieser Ordner wird auch Komponente genannt.Die Zeichnung wird so abgespeichert. Jede Ansicht hat ihren eigenen Basispunkt. Nun möchte ich die Ansicht "DRA" über Visual Basic von dieser Zeichnung in eine andere Zeichnung laden. Und genau da ist das Problem. Mache ich es so, wie oben im CODE, dann wird aber auch die VOA(Vorderansicht) mitkopiert. Ich möchte aber nur die DRA kopieren.

MFG

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 21. Feb. 2008 08:50    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 djs0401 10 Unities + Antwort hilfreich

Hi Daniel,

So wie in deinem Makro im ersten Beitrag fügst du ja auch die komplette Zeichnung als Block in die aktuelle ein.
Ist denn deine Ansicht ein eigener Block?! Der Navigator kommt ja aus dem Mechanical.
Schau doch mal in die Hilfe, ob dort die Mechanical-Dinge beschrieben stehen.
Hier sind eher weniger User, die auf Mechanical zurückgreifen können.

Edit: Vielleicht hilft dir diese Seite weiter.

Gruß, Carsten

[Diese Nachricht wurde von Carsten1210 am 21. Feb. 2008 editiert.]

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

djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 21. Feb. 2008 09:53    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

Hmm soweit ich das beurteilen kann sind in der ganzen Zeichnung keine Blöcke. Die Ansichten wurden jeweils beim Erstellen der Komponente ausgewählt.

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

djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 21. Feb. 2008 11:26    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

aber was mach dann stutzig macht ist warum dann die InsertBlock Methode funzt, wenn keine Blöcke in der Zeichnung sein sollen... Also irgendwie müssen ja dann doch Blöcke sein?! Nur halt hat der dann wahrscheinlich alles zu einem großen Block gemacht?!
Keine Ahnung bin schon so verzweifelt, dass ich mir vllt. sogar für die Draufsichten eigene dateien erstelle... was bei über 2000 Zeichnungen dauern wird ;-(

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1357
Registriert: 24.07.2002

erstellt am: 21. Feb. 2008 11:49    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 djs0401 10 Unities + Antwort hilfreich

Hi Daniel,

Bei InsertBlock wird eine vorhandene Zeichnung als Block in die vorhandene Zeichnung eingefügt.
Daher brauchen in der "Einfüge-Zeichnung" keine Blöcke vorhanden sein.

Gruß, Carsten

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

djs0401
Mitglied
Studierender


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

Beiträge: 20
Registriert: 18.02.2008

AutoCAD Mechanical 2007

erstellt am: 07. Mrz. 2008 16:59    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

Für die, die es interessiert... hab das jetzt so gemacht... leider keinen anderen weg gefunden:
Hab aus jeder Datei meine Draufsicht rausgeholt und neu abgespeichert.
Dann füge ich die Ansicht in meine Zeichnung ein mit:

Code:
Set blockObj = ThisDrawing.ModelSpace.InsertBlock(einfugPkt, Dateipfad, 1#, 1#, 1#, 0)
        blockObj.Update

Und dann erstelle ich aus diesem "Block" wieder eine Komponente, mit dem unschönen SendCommand:

Code:
ThisDrawing.SendCommand "_AMSCREATE" & vbCr & "K" & vbCr & NAME & i & vbCr & "DRA" & vbCr & "A" _
& vbCr & "LETZTES" & vbCr & vbCr & einfugPkt(0) & "," & einfugPkt(1) & vbCr

ist zwar nicht die eleganteste Lösung, aber mir ist keine bessere über den weg gelaufen!
Wenn jemand was schöneres kennt, ohne den Umweg über blocks und/oder ohne SendCommand, dann lasst es mich wissen ^^

Grüsse


EDIT:
Habe grade eine Nachricht von Autodesk erhalten!
Es gibt noch gar keine möglichkeut eine Komponente direkt von einer Datei in eine neue Zeichnug zu platzieren. Also ist mein Weg wohl der einzige...

[Diese Nachricht wurde von djs0401 am 11. Mrz. 2008 editiert.]

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