Onderdelen in een assemblage invoegen volgens een volgorde

Hoi allemaal

Ik heb de vraag onder "Solidworks" gesteld omdat ik weet dat velen van jullie deze software gebruiken, maar deze vraag zou geschikt kunnen zijn voor andere parametrische 3D CAD-software.

Laten we ons voorstellen, ik heb 3 stukken (A, B, C), deze 3 stukken hebben dezelfde breedte, dezelfde dikte maar verschillende lengtes:

Ik wil dat de CAD-software een Excel-bestand uitleest (via een macro, maar dat is niet de volgorde van mijn vraag) en onderdelen in mijn assemblage kan invoegen volgens de volgorde beschreven in Excel.

In het Excel-bestand en via macro's krijg ik bijvoorbeeld de volgorde " C, A, B "

Hoe kon de CAD-software deze blokken achter elkaar invoegen?

Ik had me voorgesteld dat alle onderdelen zouden worden ingevoegd op het punt van oorsprong van de assemblage, C zou worden ingevoegd als 1e op het origineel, dan zou A zijn oorsprong laten verschuiven door de lengte van blok C, dan zou B worden verschoven door de lengtes " A + B ".... Maar in dit geval zou ik geen "link" hebben tussen de onderdelen, geen beperking zou deel A aan kamer C hechten.

Zoals gewoonlijk ben ik nogal vaag in mijn uitleg, dus aarzel niet om me vragen te stellen om de mijne te begrijpen:)

Bedankt!

Oeps, klein lay-out probleem! Hier is de afbeelding: 

 


suiteinsertion.jpg
Hallo, wat is de vraag precies? Dit automatiseren met een macro is mogelijk en makkelijk als de lengtes bekend zijn.

Ja, hoe kunnen we het inbrengen van deze onderdelen automatiseren? Wetende dat de lengtes van deze documenten worden aangegeven in hetzelfde Excel-bestand als het bestand dat het volgende invult.

Ik denk dat het probleem is om beperkingen tussen de onderdelen te creëren, zodat als ze evolueren, de assemblage volgt.

Ik stel me voor dat de 3 stukken geen verband met elkaar hebben: het is niet een simpele verandering van dimensie die je van de ene naar de andere doet gaan.

Nee, nee, laten we ons voorstellen dat elk onderdeel een specifiek proces vertegenwoordigt. Ze hebben geen banden met elkaar, behalve dat ze achter elkaar moeten staan.

1 like

Het kan dus met SolidWorks.

U moet AddComponent5 gebruiken om een onderdeel in te voegen, een voorbeeld is hier beschikbaar: 

http://help.solidworks.com/2013/english/api/sldworksapi/Add_Component_and_Mate_Example_VB.htm

Dan AddMate3 om het te beperken, een voorbeeld is hier beschikbaar:

http://help.solidworks.com/2011/English/api/sldworksapi/Add_Distance_Mates_Example_VB.htm

Bewerken:

Zie deze links voor een SolidWorks Excel-link:

http://www.lynkoa.com/forum/autres/vba-excel-pour-solidworks

http://webcache.googleusercontent.com/search?q=cache:YB6dOOlqCUsJ:www.cadsharp.com/blog/using-microsoft-excel-with-the-solidworks-api/+&cd=1&hl=fr&ct=clnk&gl=fr

De gecachte versie van Google voor de laatste link, omdat de site een foutmelding retourneert.

1 like

Hallo

Als u een Excel-blad doorneemt, kunt u de lengte van uw "blokken" A, B en C hebben .

Dus via de macro voeg je je nieuwe component in door een toevalsbeperking van de RECHTER-vlakken (van het vorige element en het nieuwe), co-incidentie voor de TOP-vlakken en tenslotte de afstand tussen de FACE-vlakken van een waarde van (A+B)/2 in te voeren.

Ervan uitgaande dat uw oorsprong gecentreerd is in uw 3DS, zoals elk goed CAD-bestand! :)

2 likes

Bedankt @.PL, ik ga kijken naar al deze links over VBA-programmering, maar we proberen dit soort ontwikkelingen zoveel mogelijk te beperken (veel LISP-programma's vereenvoudigen door software zoals Solidworks of Inventor te gebruiken).

Toch zijn deze links heel erg interessant voor als ik aan mijn training over dit onderwerp begin!

@Benoit.LF, dit is precies de strategie die ik probeerde uit te leggen in de bijgevoegde afbeelding, het stelt me in ieder geval gerust op de weg om te gaan:)

Dit willen automatiseren met een macro en ontwikkelingen beperken lijkt mij tegenstrijdig!
2 likes

@.PL, we begrepen elkaar verkeerd, inderdaad wil ik het invoegen van onderdelen automatiseren, maar toch het gebruik van macro's beperken om flexibiliteit te hebben.

Ik weet dat ik wat macro's moet doen en de vorige links zullen me enorm helpen, maar ik wil vereenvoudigen voor het proces.

Is niet de gemakkelijkste manier om de montage van de "blokken" direct op SW te doen???

Vertegenwoordigen uw "blokken" machines, afzonderlijke onderdelen, diagrammen?

Hallo

Een andere oplossing is om de elementen te positioneren door het XYZ-coördinatensysteem en ze in te stellen als een beperkingsreferentie, zodat elk element met één klik in de eindassemblage terechtkomt.

Voor de lengtevraag hoef je alleen maar een excel te maken van de onderdeelfamilie en variabel te verklaren met de "Configuration Publisher", zie help hieronder.

http://help.solidworks.com/2015/french/solidworks/sldworks/c_configuration_publisher_top.htm

 

@+

 

 

2 likes

@Benoit:  Deze "blokken" vertegenwoordigen bewerkte onderdelen waar een vloeistof doorheen gaat, elk blok heeft een andere bewerking afhankelijk van de gewenste eigenschappen (druk, snelheid, wrijving, ...). De blokken worden achter elkaar geplaatst, zodat de vloeistof van het ene blok naar het andere gaat, waardoor deze eigenschappen veranderen.

@Coyote: Bedankt voor de beperkingen referenties die ik niet kende over Solidworks, dit zal inderdaad deel uitmaken van de ;) procedure!

Zal Piloy Assembly MyCAD Tool geen zaken kunnen doen?

http://www.mycadblog.fr/wp-content/uploads/2015/03/Pr%C3%A9sentation-des-utilitaires-2015.pdf

@+ ;-))

 

Als ik het goed begrijp, zijn uw blokken primair, dus de montagebeperkingen zijn eenvoudig.

Dus een macro met de elementen van .PL zou goed moeten werken, aangezien je het laatst ingevoegde blok kent.

Als uw blokken morgen in lengte evolueren, zal de assemblage volgen zonder enige andere manipulatie, in tegenstelling tot de assemblage op basis van hun lengte op het tijdstip T (tenzij de beperking de lengtedimensie vereist, maar het zal ingewikkeld zijn).

@gt22, bedankt voor de info, ik ga dichter bij Axemble komen om meer informatie over dit hulpprogramma te krijgen!

@stefeno, ja dat is het precies, dus ik denk erover om voor deze strategie te gaan:

Laat de volgorde "A, C, D, A" zijn,

De macro voegt blok A in bij de oorsprong, en voegt vervolgens blok C in achter blok A (laten we ons voorstellen dat er vlakken op elk blok zijn gemaakt, één vanaf het begin en één vanaf het einde), dus ik heb een beperking tussen het eindvlak van blok A en het beginvlak van blok C. En ga zo maar door, blok D wordt via de vlakken aan blok C gehaakt, enz. . . .