Enter error message or question

Hi Ansys-Team,
I've a question about updating a progress bar, which I created with Windows Forms.
When I go through a nested loop, I try to update every 25% the progress bar, which works for the label I created in the progress bar ui, but the progessbar itself is behind. For example when I reach 25%, the label shows 25%, but the progress bar is at 0. When the label is updated to 50%, which works, the progress bar shows 25%. Is there a solution for this?
totalNodesToMove = len(dataToMoveNodeList) * len(mesh.Nodes) progressStep = max(1, int(totalNodesToMove * 0.25)) nextProgressUpdate = progressStep pb = ProgressBarForm.ProgressBarForm(100, path) percent = 0 pb.Show() with Transaction(True): i = 1 for data in dataToMoveNodeList: for node in mesh.Nodes: node_y = node.Y #some other code if i >= nextProgressUpdate: percent = (i * 100) // totalNodesToMove pb.update_progress(percent, "Circumferential") #ExtAPI.Application.InvokeBackground(lambda p=percent: pb.update_progress(p, "Circumferential")) nextProgressUpdate += progressStep System.Windows.Forms.Application.DoEvents() i += 1 #Go to next node if rm is more or less equal to new calculated radius. This should save a lot of time for node move. if round(math.sqrt(math.pow(newX, 2) + math.pow(newZ, 2)), 4) == round(middle_radius, 4) or abs(fraction) <= 1e-12: continue newLocX = Quantity(newX * correctionScaling, "m") newLocY = Quantity(node.Y * correctionScaling, "m") newLocZ = Quantity(newZ * correctionScaling, "m") nodeMove.MoveNode(node.Id, newLocX, newLocY, newLocZ)
Answers
-
Hello! Where did you get the
ProgressBarForm
object from? This isn't strictly about Ansys so I'm not sure how much we can help, but what I can say is when working with front-end stuff like this you often need to redraw windows to get dynamic updates. That is certainly true withmatplotlib
. Does this have a similar concept going on?0 -
Hello,
thanks for the answer. I got the
ProgressBarForm
fromSystem.Windows.Forms
and I didProgressBar.Refresh()
as well asApplication.DoEvents()
.0