Montage beperkingen

Hallo

In vba maak ik een programma dat in een assemblage onderdelen (van een fles) opent en in elkaar zet (complete fles).

Mijn probleem komt om de stukken erin te beperken. 

Aangezien het de gebruiker is die deze onderdelen kiest, zal de mix tussen de open stukken veranderen, bijvoorbeeld: vlakke bodem, afgeronde bodem, afgeronde vierkante rand, rechte vierkante rand enz...

Wat ik begon te doen, is de plannen van elke kamer beperken.

 

Macro registratiecode

Stel swApp = Toepassing.SldWorks in

Deel instellen = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Krans face@Bague Vlak 26-1@Assemblage Ronde Rand", "VLIEGTUIG", 0, 0, 0, Waar, 1, Niets, 0)

boolstatus = Part.Extension.SelectByID2("Plan van face@EP-BR-ST-1@Assemblage Ronde Rand", "VLIEGTUIG", 0, 0, 0, Waar, 1, Niets, 0)

Dim myMate als object

Stel myMate in = Part.AddMate3(0, 0, Onwaar, 0, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.52359875983, Onwaar, longstatus)

Deel.ClearSelection2 Waar

Deel.BewerkenOpnieuw opbouwen3

 

boolstatus = Part.Extension.SelectByID2("Juiste Plan", "PLANE", 0, 0, 0, True, 1, Nothing, 0)

boolstatus = Part.DeSelectByID("Juiste Plan", "VLIEGTUIG", 0, 0, 0)

boolstatus = Part.Extension.SelectByID2("Krans droite@Bague Vlak 26-1@Assemblage Ronde Rand", "VLIEGTUIG", 0, 0, 0, Waar, 1, Niets, 0)

boolstatus = Part.Extension.SelectByID2("Plan van droite@EP-BR-ST-1@Assemblage Ronde Rand", "VLAK", 0, 0, 0, Waar, 1, Niets, 0)

Stel myMate in = Part.AddMate3(0, 0, Onwaar, 0, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.52359875983, Onwaar, longstatus)

Deel.ClearSelection2 Waar

Deel.BewerkenOpnieuw opbouwen3

 

boolstatus = Part.Extension.SelectByID2("Plan_inf@Bague kroon 26-1@Assemblage Ronde rand", "PLANE", 0, 0, 0, True, 1, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Plan_sup@EP-BR-ST-1@Assemblage Ronde Rand", "VLIEGTUIG", 0, 0, 0, Waar, 1, Niets, 0)

Stel myMate in = Part.AddMate3(0, 1, Onwaar, 0.071, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.523598755983, Onwaar, longstatus)

Deel.ClearSelection2 Waar

Deel.BewerkenOpnieuw opbouwen3

 

We kunnen zien dat er een ruimte is tussen de twee stukken van " 0,071" m en ik weet niet hoe ik die moet definiëren. (het zal veranderen voor elke set onderdelen, dus te beperkend, vooral omdat de onderdelenbibliotheek gaandeweg zal groeien)

In mijn macro heb ik bewust Y-vormige ruimtes geplaatst om de onderdelen te scheiden wanneer ik ze importeer (zie afbeelding) zodat ik de ruimte weet tussen de oorsprong van de assemblage en het zwaartepunt van mijn onderdeel. (Is het het zwaartepunt waarmee rekening wordt gehouden bij het importeren van onderdelen?)

Is het mogelijk om de hoogte van de kamer te herstellen? (VBA-variabelen)

 

Of andere ideeën zijn ook welkom!

 

Bedankt 

JB


assemblage_bouteille.png

Hallo

 

Om een waarde van een dimensie te kennen, zou deze in alle onderdelen dezelfde naam moeten hebben, bijvoorbeeld:

D1@Extrusion1

 

In dit geval is het niet heel ingewikkeld, zie deze link:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Display_Dimension_Properties_Example_VB.htm

 

Of anders om alle afmetingen van een onderdeel door te nemen:

http://help.solidworks.com/2012/English/api/sldworksapi/Iterate_Through_Dimensions_in_Model_Example_VB.htm

1 like

Kijk in de API Help

GetBox-methode (IComponent2) 

of 

GetPartBox-methode (IPartDoc)

 

Ze retourneren een reeks coördinaten die overeenkomen met de inpakkubus

voor de volgende hoogte z => waarden(5) - waarden(2)

 

 

8 likes

Hallo

 

Aan de andere kant, tenzij ik me vergis, zijn het de oorsprongen die standaard over elkaar heen worden gelegd bij het importeren. Niet het zwaartepunt.

Hoi @ Jean-bapt

 

Ik stel mezelf de vraag?

Je vraagt in een blend om de keuze uit configues te kunnen hebben #

 

Als u uw assemblage maakt met parameter X

  • Je hebt 4 secties
  1. Fondsen
  2. de lichamen
  3. De passen
  4. Knelpunten
  • In sectie 1 heb je # soorten

 a_ vlakke bodem

 b_ afgeronde bodem

 c_ afgeronde vierkante rand

 d_ rechte vierkante rand etc.

  •  In sectie 2 heb je # soorten
  • a_b_c_d
  •  In sectie 3 heb je # soorten
  • a_b_c_d
  •  In sectie 4 heb je # soorten
  • a_b_c_d

Waarom niet spelen op de assemblage met gefragmenteerde onderdelen

Een gemeenschappelijke as voor dit voorbeeldgeval (constraint ref)

je zet het allemaal bij elkaar

Je maakt een plons door in elke sectie te poseren (gestippelde rechthoek)

de typen die overeenkomen met deze secties

Je verbergt de ongewenste typen

Je verzamelt je vergadering om te visualiseren

als het goed is voor je registratie 

Je moet nog steeds de ongewenste stukken (die verborgen zijn) op deze opname verwijderen

enregistrement_ plan_nomenclature_ enz

 

(Ik hoop dat ik duidelijk genoeg was in mijn uitleg)

 

@+ ;-)

 

Hallo Gt22,

 

Dank u voor uw antwoord!

(Ik was de afgelopen twee weken met andere dingen bezig)

 

Ik begreep niet helemaal wat je bedoelt met:

"Je maakt een plons door in elke sectie te poseren (gestippelde rechthoek)

de typen die overeenkomen met deze secties

je verbergt de ongewenste jongens"

 

Wat ik in mijn macro heb gedaan, is de stukken invoegen, behalve dat ik ze gekoppeld wil invoegen.

 

Als je het woord "jij" zet, wil ik dat de vba API het doet.

 

Als je wilt kan ik je laten zien wat ik heb gedaan, er is niets geheim.

 

Zoals wat:

Is het mogelijk om stukken in een bestelling in te voegen en ze te beperken tot het eerder ingevoegde stuk?

 

Is het mogelijk om de afmetingen van de onderdelen via API aan elkaar te koppelen?

 

Dank u voor uw antwoorden,

 

JB

1 like

welke versie van SW gebruik je?

@+ ;-)

Ik gebruik SolidWorks 2012 in 64 bits

Hallo

 

Hier zijn de specificaties van mijn programma, ik wil dat de gebruiker : 

-          Kies vooraf gedefinieerde items uit een bibliotheek

-          Kies de hoogtes van elk element

-          Kies de breedte of diameter van de fles

-          Kies de inhoud van de fles

-          Kies het type glas (materiaal)

 

Er zijn dingen die ik later kan zien, het belangrijkste is de aanpassing van de hoogte van de stukken en de breedte en lengte.

 

Bijgevoegd is een assemblage van een fles die zou kunnen bestaan en waarvan ik de parameters zou willen variëren.


assemblage_bouteille_carre_droit.sldasm