Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Skizzenblock einfügen

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:  Skizzenblock einfügen (2436 mal gelesen)
Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 30. Jul. 2015 12:40    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

Ich habe schon gesucht und nichts gefunden 
Frage :
In einem Bauteil gibt es in der aktiven Skizze einen Skizzenblock.
Nun gibt es per rechte Maustaste bei Anwahl die Funktion Block einfügen.
Dort hängt der Block dann am Cursor und kann plaziert werden.
Gibt es diese Möglichkeit auch über die API ??
Ich habe einfach keine Objekteigenschaft wie Block.Insert gefunden.

Bin für jede Hilfe dankbar 

------------------
************************************
 

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

KatzenHund
Mitglied
CAx Administrator


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

Beiträge: 83
Registriert: 24.04.2012

Win 10 64Bit
Product Design & Manufacturing Collection
Vault Professional
DELL Precision T5810

erstellt am: 30. Jul. 2015 14:02    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 Frank_Schalla 10 Unities + Antwort hilfreich

Hallo Frank,

ich gehe davon aus, dass du einen AutoCAD Block meinst, welcher platziert werden soll.
Hier ein VBA Snippet:

Code:
    Dim obj_SketchBlockDef As Inventor.SketchBlockDefinition
    Set obj_SketchBlockDef = ThisApplication.ActiveDocument.ComponentDefinition.SketchBlockDefinitions.Item(2)
   
    Dim obj_CompDef As Inventor.ComponentDefinition
    Set obj_CompDef = ThisApplication.ActiveDocument.ComponentDefinition
   
    Dim obj_Sketch As Inventor.Sketch
    Set obj_Sketch = obj_CompDef.Sketches.Item(1)
   
    Call obj_SketchBlockDef.CopyContentsTo(obj_Sketch)

Das Beispiel geht davon aus, dass der gewünschte Block als zweites Item in der Blockliste ist und in die erste Skizze eingefügt werden soll.

Gruß

Stefan

------------------
Wer nicht mitmacht, kann auch nichts verändern

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 31. Jul. 2015 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


blocks.mp4

 
erst mal danke 
das einfügen habe ich ja schon alles was mir fehlt ist das dynamische plazieren oder wenigsten einfügen bei 0.0
Siehe Video im Anhang

------------------
************************************
 

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

KatzenHund
Mitglied
CAx Administrator


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

Beiträge: 83
Registriert: 24.04.2012

Win 10 64Bit
Product Design & Manufacturing Collection
Vault Professional
DELL Precision T5810

erstellt am: 31. Jul. 2015 10: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 Nur für Frank_Schalla 10 Unities + Antwort hilfreich

Hallo Frank,

etwas falsch verstanden...

Code:
    Dim obj_SketchBlockDef As Inventor.SketchBlockDefinition
    Set obj_SketchBlockDef = ThisApplication.ActiveDocument.ComponentDefinition.SketchBlockDefinitions.Item(1)
   
    Dim obj_CompDef As Inventor.ComponentDefinition
    Set obj_CompDef = ThisApplication.ActiveDocument.ComponentDefinition
   
    Dim obj_Sketch As Inventor.Sketch
    Set obj_Sketch = obj_CompDef.Sketches.Item(1)
   
    Dim obj_Point2d As Inventor.Point2d
    Set obj_Point2d = ThisApplication.TransientGeometry.CreatePoint2d(10, 10)

 
    Dim obj_SketchBlocks As Inventor.SketchBlocks
    Set obj_SketchBlocks = obj_Sketch.SketchBlocks
   
    Call obj_SketchBlocks.AddByDefinition(obj_SketchBlockDef, obj_Point2d)


So sollte es gehen.

Gruß

Stefan

------------------
Wer nicht mitmacht, kann auch nichts verändern

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 31. Jul. 2015 18:40    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

Hi Stefan

nochmals danke aber die Lösung mit dem 2dpoint war auch mein zweiter Gedanke.
Schau mal in dem Video hast du auch eine Idee wie dies interaktiv geht ?
Eigentlich würde ein Selectset auf den Block und dann ein Aufruf des CommandManagers mit Block einfügen reichen.
Aber ich finde in der CommandList diese Kontextkommando nicht und habe wieder mal so eine böse Ahnung das es dies nicht gibt

------------------
************************************
 

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 31. Jul. 2015 23: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 Frank_Schalla 10 Unities + Antwort hilfreich

Hallo

Ich hab das mal mit skizzierten Symbolen in der IDW gemacht. Für Skizzenblöcke müßte das vergleichbar gehen.

Code:
Dim oSelectSet As SelectSet
            oSelectSet = myDrawDoc.SelectSet
            oSelectSet.Clear()
            oSelectSet.Select(myDrawDoc.SketchedSymbolDefinitions.Item(mySketchedSymbolName))
            Dim oControlDef As ControlDefinition
            oControlDef = myInventor.CommandManager.ControlDefinitions.Item("DrawingUserDefinedSymbolsQuickCtxCmd")
            oControlDef.Execute()


Probier's mal mit "SketchRigidSetPlaceInstanceCmd" als ControlDefinition.

------------------
MfG
Ralf

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

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


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

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 01. Aug. 2015 10: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


1_0_profiles.mp4

 
Hallo an alle und ralf
Ich habe mir ewig die CommandList von Inventor angeschaut und immer wieder den richtigen eintrag nicht gefunden 
"SketchRigidSetPlaceInstanceCmd"

Danke nun klappts.
Falls es einer brauchen kann hier mal die Sub zum einfügen die Variablen müsst ihr natürlich anpassen 
Im Video wie es nun für den Endanwender aussieht 
********Sub insert_block(name As String)
Dim oCtrlDef As ControlDefinition
Dim oSelectSet As Inventor.SelectSet
  Set oSelectSet = ThisApplication.ActiveDocument.SelectSet
  Call oSelectSet.Clear
            Dim blocknum As Integer
            blocknum = targetdocoCompDef.SketchBlockDefinitions.Count
          ' MsgBox blocknum
            Dim num As Integer
            num = 1
            For Each targetdocoSketchBlockDef In targetdocoCompDef.SketchBlockDefinitions
        If targetdocoSketchBlockDef.name = name Then
  Call oSelectSet.Select(targetdocoCompDef.SketchBlockDefinitions.Item(num))
        End If
        num = num + 1
    Next
Set oCtrlDef = ThisApplication.CommandManager.ControlDefinitions.Item("SketchRigidSetPlaceInstanceCmd")
oCtrlDef.Execute
num = 0
End Sub

------------------
************************************
 

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