Automatische informatie over persoonlijke eigendommen

    Hoi allemaal

 

  Ik kom hier om u een idee voor te leggen dat ik niet in de praktijk kan brengen.

 

 Laat het me uitleggen: ik heb een aangepast eigendomsformulier waarop ik de naam van de klant, zijn sitereferentie en diverse andere informatie invul.

 

Ik zou graag willen dat Solidworks automatisch de naam ophaalt van de map waarin het onderdeel is opgeslagen, wat de sitereferentie wordt.

 

Dan moet hij de naam van het bovenliggende bestand eruit gaan halen, wat de naam van de klant zal worden.

 

Dus ik vond vrij gemakkelijk hoe ik het pad van de map moest invullen, maar het geeft me zoiets als c:/plan/lambda client/ref x.

 

Is er een manier om in dit pad te kiezen welke tekens moeten verschijnen, of om direct een formule in te voeren zoals hierboven gevraagd?

 

Ik hoop dat ik duidelijk ben geweest in mijn uitleg.

 

Bij voorbaat dank

 

Gebruikt u EPDM???

 

Als dat zo is, weet ik dat er een relatief eenvoudige techniek is, maar ik herinner me het niet zo veel, ik moet kijken naar de sjablonen die in ons bedrijf zijn opgezet.

1 like

Helaas gebruik ik geen EPDM...

arff..

 

Ik zal een beetje onderzoek doen, maar daar... Ik droog

Heeft u een relatie met SmartProperties?

Ik heb deze vraag al op verschillende forums gesteld, en veel mensen zijn droog...

 

 

Ogenschijnlijk onmogelijk? Ik betwijfel het... Of misschien in een toekomstige update wie het is?

 

 

Om te antwoorden, ga ik door de editor van het eigendomsformulier van 2014.

 

Nogmaals bedankt.

 

 

Hallo

 

Ik denk niet dat het mogelijk is in automatisch, dus je zult een macro moeten doorlopen.

 

Om aan de slag te gaan met VBA-macro voor SolidWorks, bekijk mijn tutorial als je dat nog niet hebt gedaan:

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

 

Ik denk dat ik het bestandspad minstens 2 keer gebruik (pad in de macro).

 

En een aanknopingspunt voor uw probleem (niet getest):

 

Dim swApp als SldWorks.SldWorks

Dim swModel als SldWorks.ModelDoc2

Sub hoofd()

Stel swApp = Toepassing.SldWorks in

Stel swModel = swApp.ActiveDoc in

swModel.AddCustomInfo2 "File Path", swCustomInfoText, Left(swModel.GetPathName,InStrRev(swModel.GetPathName, "\"))

Einde Sub

 

Lente:

https://forum.solidworks.com/thread/42839

 

 

 

 

 

 

3 likes

Ik denk dat het te doen is als je in het bestandspad al je informatie hebt (Client en site ref).

 

U maakt een tijdelijke eigenschap die uw pad ophaalt en vervolgens haalt u met het hulpprogramma Smartproperties en de functie  "string type" uw klantnaam, uw siteref, enz. op.....


type_chaine_de_caractere.png
7 likes

Hier is een voorbeeld, hoe u een eigenschap maakt met de mapnaam

 

Importeert SolidWorks.Interop

Importeert SolidWorks.Interop.swconst

Importeert System.Runtime.InteropServices

Importeert systeem

 

Gedeeltelijke klasse SolidWorksMacro

    ''' <samenvatting>

    ''' De SldWorks swApp-variabele is vooraf voor u toegewezen.

    ''' </samenvatting>

    Openbare swApp As sldworks. SldWorks (Nederlands)

 

    Openbare Sub main()

 

        Dim swDoc Als sldworks. ModelDoc2 = niets

 

        ' Actief document

        swDoc = CType(swApp.ActiveDoc, sldworks. ModelDoc2)

 

        " Als er een actief document is

        Als swDoc niets is, sluit dan Sub af

 

        " Indien het document reeds is geregistreerd

        zo niet IO. File.Exists(swDoc.GetPathName) en sluit Sub af

 

        ' Plaats de mapniveaus in een tabel (1e element = > schijf, laatste element => bestandsnaam)

        Dim stFolders As Array = swDoc.GetPathName.Split("\")

 

        Dim stParentFolder As String = stFolders(stFolders.Length - 2)

 

        AddProperty(swDoc, "Naam", stParentFolder)

 

    Einde Sub

 

    Functie AddProperty(ByVal _Doc als sldworks. ModelDoc2, ByVal _Name als String, ByVal _Value als String) als Boolean

        Dim swCustProp As sldworks. ICustomPropertyManager = _Doc.Extension.CustomPropertyManager("")

         ' Dim iAdd As Integer = swCustProp.Add3(_Name, swCustomInfoType_e.swCustomInfoText, _Value, swCustomPropertyAddOption_e.swCustomPropertyReplaceValue)

        Dim iAdd As swCustomInfoType_e = swCustProp.Add2(_Name, swCustomInfoType_e.swCustomInfoText, _Value)

        Als ik <> 1 Dan

            swCustProp.Set(_Name, _Value)

        Einde als

 

    Functie beëindigen

 

 

Einde les


swmacro.zip
11 likes

Ik ben geen expert op het gebied van VBA-programmering, maar ik heb toch de laatste post van Jfaradon overgenomen.

 

Maar op regel 2 vind ik een compilatiefout....

 

Ik ga tutorials lezen op de vba om te zien of dat de manier is waarop ik moet gaan

 

Nogmaals bedankt, ik neem snel contact met je op!


vba.png

 

je kunt niet kopiëren en plakken in VBA zoals op de schermafbeelding

 

Haal de zip op en open het project SwMacro.sln

het is VSTA ... niet VBA (er zijn twee macro tools op SW)

 

9 likes

Er zit geen SwMacro.sln project in je zip.

 

 

Hallo

 

Voor mij is de beste oplossing degene die Flegendre beschrijft.

Het is in ieder geval degene die ik op ons toepas.

Het is eenvoudig en het werkt heel goed!!

Ja emathubert, behalve dat ik geen smartproperties heb !!

Sorry, open de .vbproj !!

Zie screenshot

 

.sln het is met de Visual Studio-tool 

 


sans_titre_-_1.jpg
2 likes

Nog steeds geen oplossing? ... =)

Hallo Bart,

Ik weet niet of het je zou kunnen helpen, maar ik kwam onlangs deze link tegen:

http://www.leguide3d.com/profiles/blogs/concat-nation-de-propri-t-s-personnalis-s

Het kan a priori worden gebruikt om het tegenovergestelde te doen, d.w.z. een "client"-eigenschap hebben, een "ref"-eigenschap en zo uw pad creëren door deze eigenschappen te associëren.

Wat betreft de extractie van het pad, slaag je erin om het pad van de kamer in een woning te herstellen?
Gebruik je een familietafel in de kamer? Dit kan handig zijn voor het extraheren van eigenschappen in Excel

Andere wegen: 

https://forum.solidworks.com/message/306923#306923#306923

https://forum.solidworks.com/message/133512#133512#133512

http://www.forum-cao-3d.fr/api-questions/extraction-reference-solidworks-t12149.html

 

Is het je gelukt om iets te doen met de macro's van @jfaradon?

(Ik werk momenteel aan hetzelfde onderwerp)

1 like

Dit is een onderwerp dat ik als een rode draad doe, omdat het praktisch is, maar ook niet essentieel.

 

Aan de andere kant kom ik er hier op terug, want ik heb nog wat tijd voor me =)

 

Ik kan de naam van de map opvragen waarin het MEP is opgeslagen, maar met het volledige pad.

dat wil zeggen: C:/Solidworks plannen/ClientX/ChaniterY/caseZ/....

 

Ik zal dit allemaal bekijken en jullie op de hoogte houden;)