Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Herausforderung Mechanical Part

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:  Herausforderung Mechanical Part (1103 mal gelesen)
cadx
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 28.01.2008

erstellt am: 28. Jan. 2008 09:08    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

Ein schier hoffnungsloser Fall sind die Bohrungen und Gewinde Objekte in ACAD Mechanical 2007. Es geht darum die Zeichnung nach Objekten wie Linien, Kreise, Bögen zu durchsuchen und in DXF zu speichern. Solange es AutoCAD Standardobjekte sind, ist dies kein Problem. Nun sind in unseren Zeichnungen auch Objekte vom Typ "AmgStdPart".
Es handelt sich dabei um Objekte wie Bohrungen, Gewinde und Langlöcher, die über Normteile erstellt wurden. Bisher habe ich keinen Weg gefunden unter VB an die SubElemente zu kommen. Weiter unten eine Teil des Programmcodes.
Kann jemand die Huss knacken?

Hier der Code Teil
    For Each Element In ObjWahl
        ElementCounter = ElementCounter + 1
        TextBox6.Text = ElementCounter
        Select Case Element.ObjectName
        Case "AcDbBlockReference"
            If ProcessBlock Then GetBlk Element
        Case "AcDbLine"
            If ProcessLine Then GetLine Element
        Case "AcDbCircle"
            If ProcessCircle Then GetCircle Element
        Case "AcDbArc"
            If ProcessArc Then GetArc Element
        Case "AcDbPolyline"
            If ProcessPolyl Then GetPLine Element, 2
        Case "AcDb2dPolyline" ' Rechteck
            If Process2dPolyl Then GetPLine Element, 1
        Case "AcDbText"
            If ProcessText Then GetText Element
        Case "AcDbMText"
            If ProcessMText Then GetMtext Element
        'Case "AmgStdPart"
            ' hier ist ein grosses Problem!!!
        Case Else
            ErrElementCount = ErrElementCount + 1
            If UnbekannteMelden Then ShUnbekannt Element
        End Select
    Next Element

MFG TL

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: 28. Jan. 2008 09:22    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 cadx 10 Unities + Antwort hilfreich

wende mit sendcommand das Autocad "_explode" auf die Standardparts an

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

cadx
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 28.01.2008

erstellt am: 28. Jan. 2008 09:51    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

_explode hilft nicht, da ich 1. die Zeichnungselemente nicht zerstören möchte und 2. ja gezielt auf ausgewählte Objekte per SelectionSet zugreife.
Suche eine Lösung in VB

mfg Thomas

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: 28. Jan. 2008 10:11    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 cadx 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadx:
_explode hilft nicht, da ich 1. die Zeichnungselemente nicht zerstören möchte

.. es gibt ja noch ein _undo ..

und 2. ja gezielt auf ausgewählte Objekte per SelectionSet zugreife.

kannst du doch ... diese werden dann halt der acadfunktion übergeben ( ist mit vba etwas komplizierter als mit Lisp, aber sollte gehen)

Suche eine Lösung in VB

Da wird es wohl keine geben, da das Applicationsobjekte sind und deren ActivXschnittstelle keinen Zugriff auf evtl. ACAD-Subelemente  enthält. Die Zerlegung in ACAD-Subelemente erfolgt erst bei EXPLODE bzw. Speicherung als DXF.  Ich lass mich aber gerne überraschen..

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

cadx
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 28.01.2008

erstellt am: 28. Jan. 2008 14: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

Nun das klingt ja schwer nach ... "über den Rücken durch die Brust ins Auge" :-)) Wenn es nun nicht direkt geht, hab schon einige Stündchen erfolglos probiert, dann die Frage:
Könnte es über eine Lisp Routine  machbar sein die ein Objekt Handle oder ID übernimmt, dann die Daten zurück nach VB gibt?????

TL

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: 28. Jan. 2008 14:20    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 cadx 10 Unities + Antwort hilfreich

Die Standardparts haben keine Subautocadelemente wie Linien usw !!! Diese entstehen erst nach _explode bzw. dxfexport, da die Methoden für diese Funktionen vom Programmierer der Standardparts so definiert wurden. Eine Methode wie GETSUBELEMENTS gibts leider nicht, oder ist zumindest nicht dokumentiert, oder ich kenn sie nicht. Für den Programmierer der Standardparts wäre es kein Problem diese zu implementieren ( für Explode usw. hat er es ja auch gemacht ), hat er aber nicht. Du kannst ja mal bei Adesk anfragen.


In Lisp würd ich die Stdparts exploden .. die neuen Objekte auslesen und auswerten und dann mit _undo den Zusatand vor dem exploden wiederherstellen ... Ich hab aber immer noch nicht verstanden , was du eigentlich vorhast.
------------------
      - 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

cadx
Mitglied
Konstrukteur


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

Beiträge: 12
Registriert: 28.01.2008

erstellt am: 28. Jan. 2008 16:17    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

Um etwas mehr Licht ins Dunkel zu bringen, wir sind Maschinenbauer mit sehr hoher Fertigungstiefe, Blechbearbeitung mit Laser und Stanze, CNC Drehen und CNC Fräsen usw. Die Konstruktion arbeitet in 2D und zeichnet die Abwicklungen für Blechteile. Nun müssen die Geometriedaten (Kontur, Biegelinien, Gravur, Lasertexte) in die CAD/CAM Systeme per DXF-File übertragen werden. Bisher gibt es ein AutoCAD Makro das jeder Konstrukteur benutzt und auf die Native Zeichnung (mit Bemaßung usw) anwendet. Das Makro schreibt die Kontur in ein DXF-File auf unseren Server. Von dem Server holt der CAD/CAM Bearbeiter das DXF in sein System.
Wir wollen das Generieren dieser DXF - Daten in die Hand der Fertigung geben, dazu muss es so laufen dass möglichst keine AutoCAD -Kenntnisse nötig sind. Die unter VB geschrieben Software soll AutoCAD nutzen, um die Zeichnung zu laden und die Daten für das DXF - File heraus zu ziehen.

Wir benötigen eine gute und sichere Lösung !!!

TL

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