this does not work : if (myPin.UsePadstackThermalDefaults(myPin.Layer) = False) then there is a Thermal Override.
Does anyone have a good idea how can I determine to which pin is a Thermal Override.
The property is returning a string "True" or "False", not a boolean value like expected, so use quotes for your comparison value.
if (myPin.UsePadstackThermalDefaults(myPin.Layer) = "False") then ...
I suspect something is wrong with pin.UsePadstackThermalDefaults property.
I have written a simple script to detect Thermal Overrides on my PCB top layer (since there is no normal command in ExpeditionPCB for this):
For Each pin In doc.Pins
fileout.WriteLine (pin.Component.Name & ":" & pin.Name & " -- " & pin.UsePadstackThermalDefaults(1))
However, pin.UsePadstackThermalDefaults(1) returned "False" for ALL pins on my PCB top layer, though only a few of the pins had Thermal Overrides.
The pin and via object property values for:
are the result of the Plane Class specified for the plane net that a pin/via is connected to per specified layer (pin.TieLegClearance(3)). In order to determine if a pin or via has been assigned a thermal override by the user, you will need to compare these pin/via object values with the values specified in the Plane Class Parameters of the Net they are connected to. In other words, if there is a difference between a pin.TieLegClearance(Layer) and the TieLegClearance specified in the Plane Class definition specified for its net - which is specified per layer - then there has been an override assignment.
I used this script to add a thermal override for a selecetd via, But it is not updating in plane. Do we have any option to "place thermal overide" using script?
Set ViaColl = pcbDocObj.vias(epcbSelectSelected) For Each via In ViaColl MsgBox"Renjith" via.TieLegType(6) = epcbTieLegNone Via.TieLegClearance (6 ,epcbUnitCurrent) = 40 via.selected = false Next
Are your plane shapes on layer 6 set to dynamic? Your script works for me.
Set vias = pcbDoc.vias(epcbSelectSelected)
For Each via In vias
via.TieLegType(1) = epcbTieLegNone
via.TieLegClearance(1) = 30
The planes are set as dynamic,
Can i know which version of the Exp you have tried?
VX1 32 bit. You might have to tweak your planes shape or save get out and get back in to force the plane update but it's there. No, I didn't figure out how to automatically force the plane update but I have not looked.
If you move one of those vias you will see it update for that via.
I add additional code like this and now it is updating , Thanks for the great support Dim PlaAsiColl Dim PlaAsi Set PlaAsiColl = pcbDocObj.PlaneAssignments(3) For Each PlaAsi In PlaAsiColl PlaAsi.PlaneDataState = epcbPlaneDataStateStatic Next For Each PlaAsi In PlaAsiColl PlaAsi.PlaneDataState = epcbPlaneDataStateDynamic Next
I am not sure if this is still relevant, but I noticed that the discussion is still 'Unanswered'. Please have a look at
Detect Pin Thermal Overrides
Where I have an example script....
Retrieving data ...