iLogic Rule Trigger

Triggers kunnen gebruikt worden om ilogic rules te starten. Er zijn verschillende mogelijkheden om een trigger toe te passen. Met de Event Trigger kan je een rule laten starten afhankelijk van enkele voor opgegeven mogelijkheden. Een andere mogelijkheid is de iTrigger, wanneer je onderstaande regel aan een rule toevoegt dan zal deze rule starten wanneer het iTrigger knopje wordt ingedrukt. Deze regel maakt een ‘User Parameter’ aan die een teller bijhoudt van hoevaak de iTrigger knop wordt ingedrukt.

trigger = iTrigger0

Een andere mogelijkheid is om een trigger te koppelen aan een parameter. Het voordeel hiervan is dat je de trigger alleen uit laat voeren wanneer de opgegeven parameter wijzigt, dit is anders dan een Event Trigger – ‘Any Model Parameter Change’.

ilogic triggersHieronder een voorbeeld van twee gelinkte parameters die een Rule kunnen starten, hier is dus geen Event Trigger toegepast.

'trigger value is hier afhankelijk van 2 derived (linked) parameters
trigger = Length & Width
MessageBox.Show("Run Rule wanneer parameter Length of Width wijzigt", "iLogic")

Getal afronden naar een even getal.

Bij het gebruik van een patroon kan het wenselijk zijn om bijvoorbeeld een even aantal onderdelen over een bepaalde afstand te verdelen. De volgende formule berekent het even aantal onderdelen langs de omtrek van ID met een tussenruimte van 100mm waarbij het aantal naar beneden word afgerond. Wanneer men naar boven wil afronden dan moet floor door ceil vervangen worden. Let ook goed op met welke eenheden je rekent en zet deze ook in je formule om fouten te voorkomen. Ook is het gebruik van de haakjes hier belangrijk om de volgorde van berekenen te sturen.

(floor(( ID * PI / 100 mm ) / 2 ul)) * 2 ul

Reken voorbeeld: 333/15 afgerond naar boven op even getallen
(ceil((333 mm/15 ul)/2ul))*2 ul
333 mm / 15mm = 22.2 ul
22.2 ul / 2 ul = 11.1 ul
dit getal ronden we af naar boven ceil(11.1 ul) = 12 ul
en de 12 ul vermedigvuldigen we terug met 2ul =24 ul wat het uiteindeljke antwoord is.

HoleTable – doorlopende letters bij meerdere tabellen

HoleTable-StandardHoleTables gebruikt men op tekeningen waarop onderdelen staan met een groot aantal gaten. Zo zijn bijvoorbeeld panelen van kasten vaak aan meerdere zijde voorzien van gaten voor scharnieren en deuvels. Wanneer al deze gaten afzonderlijk bemaat worden dan worden tekeningen vaak overvol. Het gebruik van Hole-tables is in dit geval een goede oplossing. Voor elk aanzicht op de tekening maakt men een Hole Table met zijn eigen Origin Point. Inventor begint iedere Hole table met de aanduiding A1, zodat in ieder aanzicht er een gat A1 kan bestaan. Voor productie kan dit verwarrend zijn omdat er verschillende afmetingen van gaten onder A1 kunnen bestaan. Om ieder gat te voorzien van een unieke aanduiding heb ik onderstaande iLogic code geschreven. Deze code maakt gebruikt de volgorde van het plaatsen van de holetables als richtlijn voor het aanpassen van de aanduiding.
HoleTableHernummeren

HoleTable-Modified

Snipping Tool Tip

De standaard Snipping tool van windows is een door mij veel gebruikte tool. Wanneer ik echter een dropdown menu wil capturen dan is dit niet standaard mogelijk omdat het dropdown menu niet open blijft staan wanneer je overschakelt naar de Snipping Tool.
Dit is op te lossen door de volgende werkwijze te gebruiken.

  • Open eerst de Snipping tool en click op Esc, nu is de Snipping Tool actief.
  • Vervolgens open je het dropdown menu van de applicatie waar je een scherm-afdruk van wilt hebben.
  • Click nu op Ctrl + PrtScrn waardoor de Snipping Tool weer actief wordt.
  • Kies nu bij New de Capture optie die je wilt en maak je Capture.

“Wanneer je het eenmaal weet is het heel eenvoudig.”Snipping Tool

Verborgen iProperties.

Pagina is nog in bewerking.

Inventor documenten bezitten standaard iProperties zoals Partnumber, Title, Category. Wanneer deze iProperties niet voldoen aan persoonlijke wensen dan kan men Custom iProperties aanmaken. Al deze properties zijn door iedere Inventor gebruiker eenvoudig aan te passen. Wanneer men echter iProperties wil toepassen die niet door iedereen zijn te wijzigen dan zal men voor verborgen iProperties moeten kiezen. Verborgen iProperties zijn niet standaard zichtbaar in het Property venster van een document. Deze verborgen properties kan men alleen wijzigen door bijvoorbeeld gebruik te maken van een iLogic formulier of een Add-in. Zo kan bijvoorbeeld een bedrijf er voor kiezen om uitsluitend bepaalde personeelsleden de mogelijkheid te geven om verborgen properties op een tekening of document in te vullen of te wijzigen.
In de onderstaande code word een “HiddenPropety” aangemaakt in “CustomPropertySetName”. In deze iLogic code is commentaar verwerkt zodat iedere stap omschreven wordt wat er gebeurt. Tevens kijkt de code of de aan te maken PropertySet en Property al bestaan. Wanneer deze namelijk al bestaan en men probeert nogmaals bijvoorbeeld een Property aan te maken met dezelfde naam dan zou de code crashen. Bij deze code gebeurt dit dus niet.

' Get the active document.
Dim invDoc As Document
invDoc = ThisApplication.ActiveDocument

' Get the user defined (custom) property set.
Dim invCustomPropertySet As PropertySet
' Declare a PropertySet Value
Dim strPropertySet As String
strPropertySet = "CustomPropertySetName"

' Check if PropertySet exists, else create it.
If Not invDoc.PropertySets.PropertySetExists(strPropertySet) Then
invCustomPropertySet = invDoc.PropertySets.Add(strPropertySet)
Else
MessageBox.Show("PropertySet exists already", "PropertySet")
invCustomPropertySet = invDoc.PropertySets.Item(strPropertySet)
End If

' Declare a property name
Dim strPropertyName As String
strPropertyName = "HiddenProperty"
' Declare a values.
Dim strText As String

' Set values for the variables.
strText = "Hello World"
Dim invCustomProperty As Inventor.Property

' Get the existing property, if it exists. 
Dim prop As Inventor.Property = Nothing 
Dim propExists As Boolean = True 
Try 
prop = invCustomPropertySet.Item(strPropertyName) 
Catch ex As Exception 
propExists = False 
End Try 

' Check to see if the property was successfully obtained. 
If Not propExists Then 
' Failed to get the existing property so create a new one. 
prop = invDoc.PropertySets.Item(strPropertySet).Add(strText, strPropertyName)
MessageBox.Show("Property created: " & prop.Value, "Property") 
Else 
' Change the value of the existing property. 
MessageBox.Show("Property exists already, value: " & prop.Value, "Property")
prop.Value = strText
End If
Scherm om een property weer te geven in een titelblok.
Scherm om een property weer te geven in een titelblok.

Zet schetsen en workplanes uit.

Schetsen en Workplanes zijn nodig om te kunnen moduleren, maar wat doe je als je klaar bent met moduleren? Ben jij zo iemand die na gebuik zijn modellen netjes opruimt en alle schetsen en workplanes uitzet? Ik wel, maar vaak zie ik dat anderen dat niet doen. Veel mensen zetten bij Object Visibility de verschillende onderdelen uit, dit lijkt handig omdat je dan in de assembly geen schetsen ziet. Echter wanneer je dan een wijziging wilt uitvoeren aan een part via Edit vanuit de assembly omgeving, dan verschijnen soms wel honderden workplanes en schetsen. Het model is daardoor vaak totaal niet meer overzichtelijk.
Ik zou als eerste voor willen stellen: zet de schetsen en alle workplanes na gebruik gewoon netjes uit.
Wanneer dit niet gebeurt is dan kan je onderstaande VBA-script gebruiken om vanuit een assembly van alle onderdelen die daar in zitten de schetsen en workplanes automatisch uit te zetten.
Let wel op: Dit kan enige tijd duren, afhankelijk van de hoeveelheid onderdelen.

Hide_Sketches_And_planes

Modified Post: See attached file for modified code.

www.vdveek.nl is verhuist

Op dit moment zitten wij midden in een verhuizing van vdveek.nl
Zoals dit met een verhuizing gaat kan dit voor enig ongemak zorgen, zo staat bijvoorbeeld nog niet alles op de goede plek en hier en daar zal er nog wat aangepast moeten worden. De komende tijd zijn wij dan ook druk aan het werk om de verhuizing zo snel mogelijk tot een goed einde te brengen. Wij hopen dat u hier niet te veel last van ondervindt, mocht er iets zijn dan kunt u natuurlijk altijd contact op nemen.

 

Met vriendelijke groet,

Rob van der Veek.

Autocad – 1 laag in kleur printen en de rest in zwart/wit.

Kleur in tekeningen kunnen soms veel verduidelijken wanneer je een tekening afdrukt. Maar vaak is het ook weer niet nodig om de hele tekening in kleur af te drukken. Om nu slechts 1 layer in kleur weer te laten geven kan men het volgende doen. Wijzig de kleur van het te wijzigen layer in een kleur die verder nergens anders wordt gebruikt (bijvoorbeeld 126). Zorg ervoor dat alle onderdelen op dat layer ook hun kleur krijgen van het layer, en dus niet overruled zijn.
In het printmenu selecteer nu een CTB waarvan alle kleuren als zwart staan aangegeven, verander hier nu kleur 126 in de gewenste print kleur. Vergeet ook niet om de printer om in kleur af te laten drukken.
Wanneer dit vaak voorkomt dan kan je ook een aparte CTB aanmaken.

Copy Global Forms to other computers.

Dit blog heb ik in het Engels geschreven om een grotere groep geïnteresseerde te kunnen bereiken.
When you want to share your iLogic Global Forms to someone else, you find out that there is no import option in the Global Forms menu.

In this post I will explain how to add an existing Global Form by manually change a file.

Open Inventor and open or create a new file, it’s not important what kind of file. If your iLogic Browser is not active go to the iLogic section on the Manage Tab and click iLogic Browser. Your iLogic Browser is now active, click on the Global Forms Tab and see if you already has a Global Form. If you don’t have one, than create one first by Right Click in the window and Add Form. An empty form is enough.

Now we need to know where your Global Forms are stored. The easiest way is to Right click in the Global Forms window and “Open Containing Folder”.

In the opened folder you find your Global Forms created from within Inventor and a file named: iLogicBrowserUiFormSpecification.xml. This xml-file is the file we need to edit to add an existing Global Form from an other computer.
Open iLogicBrowserUiFormSpecification.xml with Notepad and look for the <Items> </Items>. In between these <Items> you find the Forms that did show up in your iLogic-browser. In this example you see <Name>Form 1</Name> as the only Form.

iLogicBrowserUiFormSpecification.xmlTo add an external Form you need to know the name of that Global Form you want to copy to this computer. At the bottom of this blog I added a Global Form, you can use to test this modification. The name of this form is “Copied Global Form”. Copy the Form “Copied Global Form.xml” to the folder where  iLogicBrowserUiFormSpecification.xml  was found.

Copy the section from <UiElementSpec…> till </UiElementSpec> and place it under the </UiElementSpec>.
Change the <Name> section to: Copied Global Form or your Form name.

iLogicBrowserUiFinal

Here you see the modified document.
Save iLogicBrowserUiFormSpecification.xml and restart Inventor to activate the changes. The next time you open your iLogic Browser you see the Added Global Form.

 

Attachment: Copied Global Form

Hidden commando binnen iLogic.

Bij het uitvoeren van het AppDeleteCmd verschijnen er meerdere vensters waarbij gebruiker input gewenst is. Het is mogelijk om een deel van deze vensters te voorkomen door SilentOperation te gebruiken.

Public Sub Example()
    ThisApplication.SilentOperation = True
' Execute the copy command
    oDeleteCmd = ThisApplication.CommandManager.ControlDefinitions.Item("AppDeleteCmd")
    oDeleteCmd.Execute
ThisApplication.SilentOperation = False 
End Sub