def do(self, dir_str: QDir) -> bool: """Output types: + Boundary + Frame """ file_name = dir_str.filePath(_get_name(self.filename_edit) + '.dxf') if isfile(file_name) and self.warn_radio.isChecked(): self.exist_warning(file_name) return False version = self.version_option.currentText().split()[0] if self.frame_radio.isChecked(): # Frame dxf_frame( self.vpoints, self.v_to_slvs, version, file_name ) elif self.assembly_radio.isChecked(): # Boundary dxf_boundary( self.vpoints, self.link_radius.value(), self.interval_option.value() if self.interval_enable.isChecked() else 0., version, file_name ) return True
def do(self, dir_str: QDir) -> bool: """Output types: + Assembly + Only wire frame """ file_name = dir_str.filePath(_get_name(self.filename_edit) + '.slvs') if isfile(file_name) and self.warn_radio.isChecked(): self.exist_warning(file_name) return False # Wire frame slvs2_frame(self.vpoints, self.v_to_slvs, file_name) # Open Solvespace by commend line if available. cmd = shutil.which("solvespace") if cmd: Popen([cmd, file_name], stdout=DEVNULL, stderr=DEVNULL) if self.frame_radio.isChecked(): self.accept() return False # Assembly vlinks: Dict[str, Set[int]] = {} for i, vpoint in enumerate(self.vpoints): for link in vpoint.links: if link in vlinks: vlinks[link].add(i) else: vlinks[link] = {i} for name, points in vlinks.items(): if name == VLink.FRAME: continue file_name = dir_str.filePath(name + '.slvs') if isfile(file_name) and self.warn_radio.isChecked(): self.exist_warning(file_name) return False slvs2_part([ self.vpoints[i] for i in points ], self.link_radius.value(), file_name) return True