コード例 #1
0
 def addSolution(self, point: str, expr: Tuple[str]):
     """Add a solution."""
     item = QListWidgetItem()
     self.Expression_list.addItem(item)
     item.setText("{}[{},{},{},{}]({})".format(*expr))
     self.PreviewWindow.setStatus(point, True)
     self.hasSolution()
     self.setWarning(self.Expression_list_label,
                     not self.PreviewWindow.isAllLock())
コード例 #2
0
 def __add_solution(self, *expr: str):
     """Add a solution."""
     item = QListWidgetItem()
     self.expression_list.addItem(item)
     item.setText(f"{expr[0]}[{','.join(expr[1:-1])}]({expr[-1]})")
     self.PreviewWindow.setStatus(expr[-1], True)
     self.__set_parm_bind()
     self.__has_solution()
     _set_warning(self.expression_list_label,
                  not self.PreviewWindow.isAllLock())
コード例 #3
0
 def __addSolution(self, *expr: Tuple[str]):
     """Add a solution."""
     item = QListWidgetItem()
     self.expression_list.addItem(item)
     item.setText("{}[{}]({})".format(expr[0], ','.join(expr[1:-1]),
                                      expr[-1]))
     self.PreviewWindow.setStatus(expr[-1], True)
     self.__setParmBind()
     self.__hasSolution()
     self.__setWarning(self.expression_list_label,
                       not self.PreviewWindow.isAllLock())
コード例 #4
0
 def on_load_button_clicked(self):
     """Show up the dialog to load structure data."""
     dlg = CollectionsDialog(self)
     dlg.show()
     if not dlg.exec_():
         return
     self.profile_name = dlg.name_loaded
     params = dlg.mechanismParams
     mapping = params['name_dict']
     #Add customize joints.
     G = Graph(params['Graph'])
     self.setGraph(G, params['pos'])
     self.PreviewWindow.cus = params['cus']
     self.PreviewWindow.same = params['same']
     #Grounded setting.
     Driver = [mapping[e] for e in params['Driver']]
     Follower = [mapping[e] for e in params['Follower']]
     for row, link in enumerate(G.nodes):
         points = set('P{}'.format(n) for n, edge in edges_view(G)
                      if link in edge)
         if set(Driver + Follower) <= points:
             self.grounded_list.setCurrentRow(row)
             break
     #Driver, Follower, Target
     for row in reversed(range(self.Follower_list.count())):
         if self.Follower_list.item(row).text() in Driver:
             self.Follower_list.setCurrentRow(row)
             self.Driver_add.click()
     self.Target_list.addItems([mapping[e] for e in params['Target']])
     self.setWarning(self.Target_label, not self.Target_list.count() > 0)
     #Constraints
     self.constraint_list.addItems(
         [", ".join(mapping[e] for e in c) for c in params['constraint']])
     #Expression
     for expr in params['Expression'].split(';'):
         params = get_from_parenthesis(expr, '[', ']').split(',')
         target = get_from_parenthesis(expr, '(', ')')
         params.append(target)
         for p in params:
             try:
                 #Try to avoid replace function name.
                 expr = mapping[p].join(expr.rsplit(p, 1))
             except KeyError:
                 continue
         item = QListWidgetItem()
         self.Expression_list.addItem(item)
         item.setText(expr)
         self.PreviewWindow.setStatus(mapping[target], True)
     self.setWarning(self.Expression_list_label,
                     not self.PreviewWindow.isAllLock())