Hoi allemaal
Hoe een Solidworks-vergelijking van dit type te transcriberen:
"hauteur@Esquisse1" = "largeur@Esquisse1" * 2
met een macro's onder VBA? de code die het vormt?
Het doel is om een onderdeel op te zetten met alleen VBA.
Bij voorbaat dank.
Hoi allemaal
Hoe een Solidworks-vergelijking van dit type te transcriberen:
"hauteur@Esquisse1" = "largeur@Esquisse1" * 2
met een macro's onder VBA? de code die het vormt?
Het doel is om een onderdeel op te zetten met alleen VBA.
Bij voorbaat dank.
Hallo
SW Online Help is een schat aan informatie. Voor API's is hier de link: http://help.solidworks.com/2015/english/api/sldworksapiprogguide/Welcome.htm
U vindt een voorbeeld van het optellen van vergelijkingen in een ruimte met verschillende configuraties : http://help.solidworks.com/2015/english/api/sldworksapi/Add_Equations_Example_VB.htm
Tot ziens.
In het slechtste geval, als u niet vindt wat u zoekt, kunt u misschien proberen een macro op te nemen door uw vergelijking uit te voeren, in de code te komen en te zien wat de software doet?
Hallo
Allereerst dank u voor uw antwoorden.
Ik heb al gekeken naar de SW-hulp, maar de aangeboden voorbeelden zijn met voorwaarden, in mijn geval heb ik ze niet nodig.
Omdat ik niet veel kennis in ontwikkeling had, probeerde ik aan de code te sleutelen, maar tevergeefs werkte niets:(
Met de macrorecorder werkt het niet, het houdt geen rekening met de vergelijking die in solidworks is geschreven.
Bij voorbaat dank.
Dus in dit geval moest het meteen gezegd worden.
Want om een functionele macro voor je te ontwikkelen, hebben we veel meer informatie nodig over het doel en het gebruik dat je ervan wilt maken.
En het kost veel tijd.
Wat ik nodig heb is een macro die in staat is om dit soort vergelijkingen uit te voeren:
"hauteur@Esquisse1" = "largeur@Esquisse1" * 2
Als dat alleen maar de reden is, waarom doe je dan niet elke keer vergelijkingen?
Want dan moet je de juiste naam aan de juiste beoordeling geven, zodat hij weet hoe hij ervoor moet gaan. Ik ben niet erg overtuigd van de bespaarde tijd :s
Ik heb met VBA een formulier gemaakt om een 3D-model op te zetten.
Met dit formulier kan ik de lengte, breedte en hoogte van het sjabloon wijzigen.
Er zijn ook gevallen die moeten worden gecontroleerd om het verwijderen van een onderdeel te verwijderen of ongedaan te maken (afhankelijk van de gekozen opties).
Als ik vergelijkingen maak op mijn componenten binnen mijn assembly, wanneer ik ze verwijder (met de checkcases) vertelt solidworks me fouten op mijn vergelijkingen. Daarom wil ik SW-vergelijkingen in mijn model verbieden
Oh ja, natuurlijk.
Nou, anders om je te antwoorden op een vergelijking in VBA, doe ik het zo
Cellen (i, "I"). Waarde = Blad3.Cellen(a, "E"). Waarde * Cellen (i, "C"). Waarde
Dus voor jou zou het zijn
largeur@esquisse1" = Cellen(i, "C"). Waarde* 2
waarbij Cellen (i, "C") zou overeenkomen met het Excel-vak voor het instellen van de waarde "hauteur@esquisse1"
Aan de andere kant weet ik helemaal niet hoe ik de link moet leggen tussen excel en de waarde van een dimensie (maar ik neem aan dat jij weet hoe je dat moet doen?). Dus ik laat je het integreren zoals je wilt.
Dat gezegd hebbende, kan het leuk zijn om je codefragment als reactie te plaatsen voor de volgende lezers die op zoek zijn naar hetzelfde type antwoord;)
Ik werk niet met Excel maar met de VBA module van Solidworks.
Hieronder staat een code die ik heb om mijn waarden aan te passen, of het nu lengte, breedte of een aantal herhalingen is.
Ik ben op zoek naar hetzelfde type code, maar om relaties tussen bepaalde onderdelen te creëren
Set SwApp = CreateObject("SldWorks.Application") ' @Corps CamVane 100.sldasm
Deel instellen = SwApp.ActiveDoc
Part.Parameter("D1@Lg traverse@Traverse onderste CamVane.part"). SystemValue = (dimensie.breedte.waarde - 3) / 1000
Deel.ClearSelection
Deel.ForceHerbouwen
Part.Parameter("D1@Distance2@Corps CamVane 100.sldasm"). SystemValue = dimensie. Hoogte.waarde / 1000
Deel.ClearSelection
Deel.ForceHerbouwen
Part.Parameter("D5@Lg traverse@Traverse onderste CamVane.part"). SystemValue = dimensie.dikte.waarde / 1000
Deel.ClearSelection
Deel.ForceHerbouwen
Part.Parameter("lineair D1@Répétition locale1@Corps CamVane 100.sldasm"). SystemValue = UserForm1.TextBox1.value
Deel.ClearSelection
Deel.ForceHerbouwen
Deel.WeergaveZoomtofit2
Deel.ForceHerbouwen
boolstatus = Deel.EditRebuild3()
Ik kan mijn probleem nog steeds niet oplossen:(
Hallo
Ik heb het antwoord op mijn vraag gevonden.
Voor waar ik in geïnteresseerd ben, heb ik de onderstaande code geplaatst.
Sub hoofd()
Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Deel.Parameter("hauteur@Esquisse1"). SystemValue = Deel.Parameter("largeur@Esquisse1"). Systeemwaarde *2
Deel.ClearSelection
Deel.ForceHerbouwen
Deel.WeergaveZoomtofit2
Deel.ForceHerbouwen
boolstatus = Deel.EditRebuild3()
Einde Sub
Hallo
Ik heb het antwoord op mijn vraag gevonden.
Voor waar ik in geïnteresseerd ben, heb ik de onderstaande code geplaatst.
Sub hoofd()
Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Deel.Parameter("hauteur@Esquisse1"). SystemValue = Deel.Parameter("largeur@Esquisse1"). Systeemwaarde *2
Deel.ClearSelection
Deel.ForceHerbouwen
Deel.WeergaveZoomtofit2
Deel.ForceHerbouwen
boolstatus = Deel.EditRebuild3()
Einde Sub