Solidworks Controleblad

Hallo

Ik probeer de tekeningafmetingen te herstellen om ze te vervangen in een exel-vel en in een tekentafel

Het einddoel is om een controleblad voor de onderdelen te maken

Ik denk dat mijn bladeren elke keer anders zijn.

Het beste wat u kunt doen, is verwijzen naar de kansen ;)

Ik zit vast aan de repatriëring van de kansen op Exel

..

Hier is een begin van code bijgevoegd die nuttig kan zijn

 


anotation_plan_solidworks.txt

Hallo

In je macro open je Excel, maar je verzendt het niets. Je moet ook een map maken, een vel en de cellen invullen. De debug.prints worden alleen gebruikt om het resultaat weer te geven in het VB-uitvoervenster. Hier is dezelfde macro, maar met een resultaat dat wordt weergegeven in Excel.

Vriendelijke groeten


anotation_plan_solidworks-2.txt
2 likes

De extractie deze pas nikel dank u

, heeft u een oplossing om een opmerking op de tekening toe te voegen om op een duidelijkere manier naar de dimensie in de tabel en de tekening te verwijzen?

1 like

Hallo

U kunt bijvoorbeeld een tekst toevoegen onderaan het oproepnummer als dit nog niet in gebruik is. Om het te proberen, kunt u de regel swDispDim.SetText swDimensionTextCalloutBelow, "(Ref A" & teller & ")" net voor de regel toevoegen. Bereik ("A" & teller). Value = "Referentie hieronder  : " & swDispDim.GetText(swDimensionTextCalloutBelow)

Vriendelijke groeten

Hallo

Allereerst wil ik erop wijzen dat ik absoluut niets van macro weet!

Ik graaf een oud onderwerp op. Ik wil graag controlebladen maken voor de werkplaats. Ik vond dit bericht met een macro tekst. Ik kopieer en plak en verbaas me dat het niet werkt. Waarvoor? Als iemand me zijn tijd wil geven om dit mysterie op te helderen.

Moge de Kracht met je zijn


obiwan.swp
1 like

Hallo OBI WAN,

Je dient de verwijzing naar Microsoft Excel toe te voegen in je macro, hiervoor ga je naar Extra / Referenties... en u voegt Microsoft Excel xx.x Object Library toe:

Vriendelijke groeten

3 likes

Hallo @d.roger

Dank u voor uw interventie en vooral voor uw efficiëntie.

Moge de kracht met je zijn.

 

1 like

Hallo,@d.roger

Met uw hulp heb ik goede vooruitgang geboekt op het gebied van controlebladen. maar ik zou nog verder willen gaan met de macro. Ik leg uit dat bij het uitvoeren van de macro elk Excel-bestand wordt geopend, maar is het mogelijk om een vooraf ingevuld Excel-bestand te openen dat een macro zou bevatten.

Moge de kracht met je zijn.

 

 

Ter info: we kunnen iets doen dat heel dicht in de buurt komt van wat je wilt doen met het hulpprogramma "tolerantietabel" van MyCADTools, heb ik de indruk (het maken van een tabel die de afmetingen + locatie ervan ophaalt)

1 like

Hallo OBI WAN,

Ja dat kan, je vervangt de lijnen:

Dim xlApp als Excel.Application
Stel xlApp in = Nieuwe Excel.Toepassing
Dim wbk als Excel.Workbook
Dim sht als Excel.Werkblad

Met xlApp
    . Zichtbaar = Waar
    Stel wbk in = . Werkmappen.Toevoegen
    Stel sht in = wbk. Actief blad
Eindigen met

Door deze:

Dim xlApp als Excel.Application
Dim wbk als Excel.Workbook
Dim sht als Excel.Werkblad

Set xlApp = CreateObject("Excel.application")
xlApp.Visible = Waar
Stel wbk in = xlApp.Workbooks.Open("C:\Gebruikers\XXX\Desktop\anotation_plan_solidworks-5.xlsx")
Stel sht in = wbk. Actief blad

Door de bestandsnaam te vervangen door je bestand natuurlijk.

Dan moet je de regels tussen de "Met sht" en de "End With" veranderen om je waarden in de juiste cellen te zetten.

Vriendelijke groeten

2 likes

Hallo

Bedankt @d.Roger, het werkt als een ton dankzij jou.

Ik voltooi en maak beschikbaar op Lynkoa.

Nogmaals heel erg bedankt.

De Kracht is bij je.

 

2 likes

@ mdelbecq  Ik heb geen mycadtools snuiven.

Hallo @d.roger

Hier is zowel de macro als het Excel-bestand om het controleblad te maken. Er is gewoon een bug, als er op het plan een engelenbeoordeling is, verknoeit het het.

Anders is het eenvoudig op het plan om het sorteren van de dimensies te beperken, moet u eerst alleen de afmetingen plaatsen die moeten worden gecontroleerd en vervolgens de macro uitvoeren, op het Excel-bestand dat wordt geopend, klikt u op de knop en in het tweede tabblad bevindt zich het controleblad. Als iemand een ander idee heeft om het aan te passen, laat het dan los.

PS: vergeet in de macro niet om het pad naar het Excel-bestand te wijzigen

Moge de kracht met je zijn.

 

 


obi_wan.zip

Hallo

Dus ja, het werkt, tenzij de afmeting een hoek is, wat normaal is, want in je macro op Excel heb je de regel "Temp = Replace(Split(Temp, "(")(1), "mm)", "")" waarmee u een waarde kunt herwerken die is opgehaald uit het blad dat automatisch is gemaakt van de SW-macro, maar deze waarde is niet op hetzelfde schrijfformaat als voor De andere kanten wat we zien in de regels:

Als swDispDim.GetType = 3 Dan
                    . Bereik ("A" & teller). Waarde = "Waarde : " & swDimension.GetSystemValue2("") * 180 / pi & Chr(176)
                Anders
                    . Bereik ("A" & teller). Waarde = "Waarde: " & swDimension.GetSystemValue2("") * 1000 / 25,4 & """" & " (" & swDimension.GetSystemValue2("") * 1000 & "mm)"
                Einde als

van de SW-macro.

Deze regels zijn slechts een opmaakstijl voor het schrijven van de dimensiewaarde voor het Excel-bestand en dit kan indien nodig eenvoudig worden gewijzigd.

Ik vind het moeilijk om te begrijpen waarom je een macro in je Excel-bestand doorloopt, alles wat je erin doet kan gemakkelijk in de SW-macro worden gedaan.

Van mijn kant zou ik de neiging hebben gehad om een standaardformulier in Excel te maken en het vervolgens in te vullen vanuit de SW-macro, waardoor macro's niet in Excel hoeven te worden geautoriseerd en dit bestand bijvoorbeeld ook op LibreOffice kan worden gelezen.

De rijen die in de SW-macro moeten worden herwerkt, zijn die tussen de regels "Met sht" en "Eindigen met" om alleen de waarden weer te geven die nodig worden geacht en deze naar de gewenste Excel-cellen te sturen. Een klein voorbeeld zal zeker volgen in  de komende dagen (of uren) naar aanleiding van mijn beschikbaarheid.

Vriendelijke groeten

Hallo

Hier is het kleine voorbeeld zoals eerder aangekondigd. U hoeft alleen maar het pad van het Excel-bestand in de macro te wijzigen, maar de bestandsnaam te laten zoals deze is en het vervolgens vanuit SW te starten met een geladen plan.

Vriendelijke groeten


fichecontrole.zip
1 like

Hallo @d.roger

Je bent een kampioen, mijn kampioen. Nou, zoals hierboven gezegd, ik heb geen kennis van VBA, dus ik knutsel, ik knutsel.

De Macor werkt goed, maar merkwaardig genoeg moet ik hem 2 keer draaien. De eerste keer brult ze bij de eerste kansen. Ik sluit Excel, ik heb een fout 1004, ik antwoord "einde", ik start de macro opnieuw en het wonder, het werkt perfect.

Laat de kracht bij je blijven.

Hallo

Er zijn verschillende mogelijke redenen:

- 1 Excel-proces is al actief.

- Opeenvolgende lancering van de macro te snel (Excel had geen tijd om volledig af te sluiten).

- ...

Ik heb niet de tijd genomen om de fouten in de code aan te pakken...

Vriendelijke groeten

1 like

Bedankt

Op een dag zal ik de tijd moeten nemen om met de VBA aan de slag te gaan.

Moge de kracht met je zijn.

 

1 like

OBI WAN

"Anders is het eenvoudig: op de kaart, om het sorteren van de dimensies te beperken, moet je eerst alleen de te controleren dimensies plaatsen, vervolgens de macro uitvoeren, op het Excel-bestand dat open is, op de knop klikken en in het tweede tabblad is het controleblad. Als iemand een ander idee heeft om het aan te passen, laat het dan los."

Wat bedoel je met op de eerste plaats zetten?

Aangezien ik een tekening heb met ongeveer 100 zijden en ik maar 5 zijden in mijn bedieningspaneel wil

Bedankt