Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Gewindegröße über Makro anpassen

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 SOLIDWORKS
  
SolidCAM im Einsatz bei der August Weckermann KG
Autor Thema:  Gewindegröße über Makro anpassen (330 mal gelesen)
ChaosKonstrukteur
Mitglied



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

Beiträge: 13
Registriert: 29.01.2023

SolidWorks 2022 SP5

erstellt am: 11. Jul. 2023 12: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

Hi,

Aktuell versuche ich die Größe von Gewindebohrungen automatisch anzupassen. In meinem Makro untern möchte ich mir aktuell nur die Gewindegröße eines Vorlagemodells, welches dann parametrisch angepasst werden soll, ausgeben.
Leider Funktioniert der Zugriff mit GetDefinition nicht, was ich allerdings nicht verstehe, da das nach API doch eigentlich der richtige Weg sein sollte.

Ich würde mich freuen wenn mir jemand aufzeigen kann, wo der Fehler liegt und wie ich auf ThreadFeatureData.Size zugreifen kann.

Anbei das Makro:

________________
Option Explicit

Dim swApp As Object
Sub Gewindegroesse_aendern()

    Set swApp = Application.SldWorks
   
    Dim swModel As SldWorks.ModelDoc2
    Dim swFeat As SldWorks.Feature
    Dim Gewinde_data As SldWorks.ThreadFeatureData
    Dim Component As SldWorks.Component2
    Dim boolstatus As Boolean
   
       
    Set swModel = swApp.ActiveDoc
   
    Debug.Print swModel.GetFeatureCount
   
    Set swFeat = swModel.FeatureByName("Gewinde Getriebe")
   
    Debug.Print swFeat.Name
   
    Set Gewinde_data = swFeat.GetDefinition  |hier wird im Debugger ausgegeben, dass die Typen unverträglich sind
   
    boolstatus = Gewinde_data.AccessSelections(swModel, Nothing)
   
    Debug.Print Gewinde_data.Size
   


End Sub
_________________

Besten Dank und LG

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 11. Jul. 2023 13:07    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 ChaosKonstrukteur 10 Unities + Antwort hilfreich

NUr mal so ins Blaue geraten

Ich vermute, dass Du mit swModel.FeatureByName("Gewinde Getriebe")
eine Gewindebeschreibung auswählst und kein Gewindefeature
und das der Grund ist, warum Du die Fehlermeldung erhältst

Du kannst das überprüfen, wenn Du Dir mit
swFeat.gettypename
den Namen des Typs ausgeben lässt
Wenn da "CosmeticThread" ausgegeben wird, dann passt das nicht zu ThreadFeatureData

------------------
Grüße
Heinz

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

ChaosKonstrukteur
Mitglied



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

Beiträge: 13
Registriert: 29.01.2023

SolidWorks 2022 SP5

erstellt am: 11. Jul. 2023 14:21    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 Heinz,

In der tat muss der Fehler irgendwo da liegen. Ich war wohl gestern morgen nicht ganz auf der Höhe und habe das Gewinde mit dem HoleWizard erstellt...
swFeat.GetTypeName gibt den Typen "HoleWzd" aus
Wenn ich im HoleWizard den Typ abfrage, erhalte ich wirklich einen "swTapThruCosmeticThread".

Über einen richtig erstellen Thread funktionierts nun. Ich muss wohl erstmal an meinen manuellen SolidWorks Kenntnissen arbeite, bevor ich automatisiere   

Danke für deine Hilfe!

LG

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

ChaosKonstrukteur
Mitglied



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

Beiträge: 13
Registriert: 29.01.2023

SolidWorks 2022 SP5

erstellt am: 13. Jul. 2023 14:52    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

Falls es nochmal für jemanden relevant sein sollte anbei der Code um die Gewindegröße eines CosmeticThreads, welches über den Bohrungsassistenten(HoleWizard) erstellt wurde, per Makro anzupassen:

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim longstatus As Long
Dim longwarnings As Long

Dim boolstatus As Boolean

Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeatMgr As SldWorks.FeatureManager
Dim swFeat As SldWorks.Feature

Dim swWizHole As SldWorks.WizardHoleFeatureData2

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swFeatMgr = swModel.FeatureManager
Set swSelMgr = swModel.SelectionManager

boolstatus = swModelDocExt.SelectByID2("Gewinde Getriebe", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)

Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
Set swWizHole = swFeat.GetDefinition

boolstatus = swWizHole.ChangeStandard(swStandardISO, swStandardISOTappedHole, "M30")
Debug.Print boolstatus

swFeat.ModifyDefinition swWizHole, swModel, Nothing

swModel.ForceRebuild3 False
swModel.ClearSelection2 True

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)2024 CAD.de | Impressum | Datenschutz