| |
 | 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 neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: AcadBlöcke mitels vb6 ermitteln (1227 mal gelesen)
|
cbr_andl2 Mitglied Softwareentwickler
 Beiträge: 3 Registriert: 20.08.2004
|
erstellt am: 20. Aug. 2004 13:23 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Es gibt eine *.dwg datei welche bestimmte fertig definierte Blöcke enthält. Ich kopiere diese Blöcke von dort heraus und füge sie dann in einer anderen Datei ein. Jetzt möchte ich mittels VB6 alle Blöcke in der neuen Datei zählen und snschließend in einem vb form die benötigten Stückzahlen pro Block ausgeben! Da ich die Com Schnittstelle von AutoCad noch nie programmeirt habe , habe ich absolut Null Ahnung wie das script dafür aussehen könnte. Ideal wäre es, wenn der benutzer aus einer combobox auswählen könnte welche offene/oder auch nicht offene Acad datei er auswerten möchte und ihm dann eine übersicht mit der in dieser Datei plazierten Blöcken erhält (Stück - Blockname) Wer würde mir da bitte ein paar Anstöße geben, um diese Aufgabenstellung zu verwirklichen???? Schon jetz Besten Dank für eure Bemühungen! lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 20. Aug. 2004 14:27 <-- editieren / zitieren --> Unities abgeben:          Nur für cbr_andl2
|
cbr_andl2 Mitglied Softwareentwickler
 Beiträge: 3 Registriert: 20.08.2004
|
erstellt am: 20. Aug. 2004 14:53 <-- editieren / zitieren --> Unities abgeben:         
sorry, aber man kann in VB6 keine *.dvb files vernünftig verarbeiten. (ergebnis siehe anhang) ISTzustand: Option Explicit Public AcadApp As AcadApplication Public AcadBlock As AcadBlock Public WshShell As Object Private Sub Command1_Click() Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "C:\Programme\ACAD2000\acad.exe" Set AcadApp = CreateObject("AutoCAD.Application") 'wie kann ich alle ofenen bzw. aktiven acad sitzungen auslesen 'um den benutzer die auszuwertende sitzung mittels combo box 'auswählen zu lassen??? 'wie initialisiert man einen autoCAD block bzw. blöcke??? 'jetzt sollen alle im aktiven AcadFile vorhandenen Blöcke 'ausgelesen und aufgelistet werden + platzierte Stückzahl 'jedes einzelnen Block Typs End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marco Lorenz Mitglied Softwareentwickler, freier Inventor & AutoCAD Händler

 Beiträge: 59 Registriert: 18.09.2001 Win NT,2k,XP Pro Acad+Mechanical2k-2005, Inventor 5-9
|
erstellt am: 20. Aug. 2004 17:18 <-- editieren / zitieren --> Unities abgeben:          Nur für cbr_andl2
Hallo, lg, in Deinem Code startest Du AutoCAD gleich zweimal, einmal über die Shell und dann nochmal mit CreateObject oder? Ich würde das so machen: Zuerst nachsehen, ob schon ein AutoCAD aktiv ist: Dim Acadapp As Object On Error Resume Next Set Acadapp = GetObject(, "Autocad.Application") If Err <> 0 Then ' AutoCAD nicht gefunden - wird nun gestartet... Set AcadApp = CreateObject("Autocad.Application") End If ' Nun eventuell eine Datei in AutoCAD öffnen: Dim Drawing as As AcadDocument Set Drawing = Acadapp.Documents.Open ("Test.dwg") ' Dann kannst Du z.B. die Blockdefinitionen ansehen: Dim Blockdef as AcadObject For Each Blockdef in drawing.blocks debug.print blockdef.name Next Blockdef .... Für die platzierte Stückzahl der einzelnen Blöcke mußt Du die Zeichnung durchsuchen - siehe Selectionsets, da hab ich neulich was dazu gepostet: http://ww3.cad.de/foren/ubb/Forum259/HTML/000310.shtml
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cbr_andl2 Mitglied Softwareentwickler
 Beiträge: 3 Registriert: 20.08.2004
|
erstellt am: 20. Aug. 2004 20:12 <-- editieren / zitieren --> Unities abgeben:         
|